Groundhogg — Marketing Automation & CRM for WordPress


Say hello to the easiest way to Simplify, Consolidate & Automate your Sales & Marketing in WordPress.


Say hello to the easiest way to Simplify, Consolidate & Automate your Sales & Marketing in WordPress.

Marketing Automation is one of the most effective tools that can help you build your list and generate more revenue for your business.

With Groundhogg you can turn your static blog, e-commerce store or membership site into a personalized customer journey that will help you create more raving fans and maximize profits.

Groundhogg is the only Marketing Automation tools for WordPress that can handle CRM, Email Marketing, SMS Marketing, and more without the need for third-party software. This means you can design your ideal customer journey without ever leaving your WordPress site!


  • Capturing Leads
  • Sending Personalized Emails and text messages
  • Collecting unlimited customer data
  • Profiling subscribers
  • Automating the customer journey
  • Improving E-commerce sales
  • Increasing membership retention
  • And so much more…

Groundhogg is the perfect alternative to Infusionsoft, HubSpot, Actionetics, ActiveCampaign, ConvertKit, MailChimp and many other expensive third-party apps.


Groundhogg takes what the big guys charge thousands of dollars for, and gives them to you for free.

  • Send Unlimited Emails — Groundhogg does not impose a limit on the number of emails you send.
  • Collect Unlimited Contacts — Groundhogg does not impose a limit on the number of contacts you can have.
  • Send SMS Right from WordPress — Using the Groundhogg Sending Service you can send text messages without paying for any other tools.
  • Deep WordPress Integration — Being a WordPress plugin, we are deeply integrated with WP so that setup is minimal.
  • Unlimited Custom Fields — Collect an unlimited amount of data about your customers to help you make crucial decisions about your business.
  • Drag & Drop Email Builder — Our email builder allows you to create beautiful looking emails that can be viewed without issue in every email client including the oldest versions of outlook.
  • Automated Funnel BuilderLa piece de resistance, Our funnel builder is the ultimate tool that will allow you to design high converting customer journeys that integrate with your favorite WordPress tools.
  • Import & Export EVERYTHING — Everything in Groundhogg can be exported and imported into any other website in seconds! Emails, Funnels, Contacts, Settings, EVERYTHING! This makes sharing strategies with customers or clients a breeze.

And there is so much more that Groundhogg can do for you.


  • Marketing Automation Tools are Expensive! — Most tools comparable to Groundhogg cost at least $49/month USD. And at that low price point, the number of contacts you can store and emails you can send is nominal at best.
  • Marketing Automation Tools are Complicated! — A lot of the other tools inundate you with a huge feature set and hard to understand documentation. We make it easy by providing you with concrete instructions, templates, and videos.
  • Marketing Automation Tools are Closed Source! — We believe that every business has the right to the tools they need, that’s why Groundhogg is OPEN SOURCE, because that way anyone can make Groundhogg work for them.
  • Marketing Automation Tools Keep You Stuck! — The business model of our competitors is to lock you in with their features so that it becomes too painful to leave. We think that sucks, and that’s why we’ve worked hard so that our tools but you back in control.
  • Marketing Automation Tools are hard to integrate! — Most other tools require third-party add-ons to integrate like Zapier. Groundhogg can be integrated with many popular WordPress plugins in seconds without the need to pay third parties.
  • Marketing Automation Tools Promote Their Partners! — Many of our competitors make their tools deliberately hard to use to so that you’ll pay more for their implementation services. That sucks! With Groundhogg, everything is DIY and easy as 123.


Groundhogg is designed for…

  • Podcasters
  • Mom & Pop Shops
  • Course Creators
  • Bloggers
  • Membership sites
  • Physical product stores
  • Digital product stores
  • Agencies
  • Freelancers
  • Non-Profits
  • Charities
  • Startups
  • Artists
  • Real Estate Agents & Brokers

Anyone who can benefit from collecting an email address can benefit from using Groundhogg!


Join our Facebook group to talk to others who are using Groundhogg to grow their business.


We started building Groundhogg because we believe that every business, regardless of location, language, or budget deserves equal access to marketing and sales tools that will allow them to grow.

Every tool we build draws from this belief so that we can be the #1 resource for accessible marketing and sales tools.


  • The funnel builder in all its glory, Benchmarks show on right.
  • The Funnel builder in reporting mode
  • The funnel builder in all its glory, Actions show on right.
  • Our HTML Email editor
  • Use Superlinks to dynamically send contacts to different places
  • Segment contacts using custom tags
  • Import or export Funnels across multiple sites.
  • Ditch your current CRM and import your list TODAY!
  • Start with awesome funnel templates designed by digital marketers.
  • Pre-written email templates provide inspiration for you next literary masterpiece.


This plugin provides 1 block.

Groundhogg — Marketing Automation & CRM for WordPress


Plugin Repo

  • Install
  • Activate
  • Complete the guided setup
  • Start Marketing


  • Upload the zip archive
  • unzip
  • activate through the plugins manager
  • Complete guided setup
  • Start Marketing


Does Groundhogg need any additional marketing software like MailChimp?

No, Groundhogg is a completely standalone, lightweight marketing system designed to keep you in the black, even when it comes to your monthly software bill.

Does Groundhogg have any monthly fee or required upgrades?

No, you can use Groundhogg for free forever. Groundhogg is a Open Source project designed to democratize email marketing and provide simple easy to use tools to new and none tech savvy business owners.

Does Groundhogg connect to Woocommerce or other plugins?

Yes, you can find our Official Woocommerce extension on our site among other extensions for other popular plugins.

Does Groundhogg work with my theme?

Groundhogg is theme agnostic, meaning it will work with every and any theme. Groundhogg is mostly administrative and very little is seen by visitors.

Does Groundhogg track my subscribers?

Yes, Groundhogg has a very smart tracking system that will allow you to monitor your clients interactions with your emails and your site.

Does Groundhogg Integrate with my membership plugin?

YEs, Groundhogg has a builtin connection with the WordPress user API, meaning it will automatically use user roles in your site, like from a membership plugin.

Is Groundhogg secure?

We follow all best WordPress security practices. Plus it’s open source, so we have a large community looking out for potential weaknesses when it comes to your data.

Is Groundhogg GDPR, CANSPAM, or CASL compliant?

Yes, we have tools available to meet the criteria of all the worlds ANTI-SPAM & privacy legislation.

Is Groundhogg better than my current CRM/Marketing Automation tool?

Well, that’s up to you! We’ll never say Groundhogg is better than anyone, but it is different. And sometimes different is better than better.


October 16, 2019
This plugin is the perfect tool for a small/medium business marketing automation needs. Very impressed with it. Fast responses on the FB group also.
October 15, 2019
I found Groundhogg through a chat with Jack Arturo at WP Fusion. It's an excellent CRM and automation plugin that allows you to manage your email marketing, your contacts, and funnel building all from the WP dashboard. Their response to your support questions are prompt, and the office hours chat in the FB group is a great opportunity to get questions answered in a more detailed way.
October 15, 2019
Adrian and his team have really built a great WordPress based CRM that's really competitive with the big guys like ActiveCampagin. I would highly recommend it to anybody who is running WordPress.
October 11, 2019
As a WP developer I serve small business owners. With Groundhogg I can add CRM and marketing automation to my WP packaged services. The Groundhogg install is smoothless and I love the multisite compatible set-up process. Keep the good work going, I believe all small businesses could benefied from Groundhogg.
October 11, 2019
Thank you very much for this plugin. I love the unique options this plugin adds for marketing. Fast and friendly support.
Read all 20 reviews

Contributors & Developers

“Groundhogg — Marketing Automation & CRM for WordPress” is open source software. The following people have contributed to this plugin.


Changelog (2019-10-15)

  • FIXED Bug caused emails which were sent to appear as failed with an error related to another email address.

2.0.12 (2019-10-08)

  • ADDED SendWP integration is now the recommended email delivery tool.
  • TWEAKED improved birthday field UI in the form. (2019-10-07)

  • TWEAKED Sending service now pings new serverless architecture! (2019-09-27)

  • TWEAKED Table base class now provides better support for queries in the URL
  • TWEAKED Table base class includes column_cb function
  • TWEAKED Admin_Page class will fallback on to the default view action if no method is supported for the current action.
  • TWEAKED if webhook body is empty, pass the full contact details.
  • FIXED fatal error when removing a role from a user that does not have an associated contact record.
  • FIXED Webhook test does not work in funnel builder 2.0
  • FIXED Birthday error when birthday is left blank (2019-09-26)

  • ADDED a new method “JSON import” for importing funnels.
  • ADDED error message when invalid birthday provided in the admin.
  • ADDED the {owner_phone} replacement code. Set user phone number under users > edit > contact methods
  • TWEAKED Remove error code from error message in admin because it’s very ugly.
  • FIXED “Skip if confirmed” causing all confirmation “Email Confirmed” steps to trigger. Should only trigger the steps in the current funnel. (2019-09-24)

  • ADDED Default localization library and supporting functions for validating mobile phone numbers
  • TWEAKED Birthday field in contact record now supports empty value to not save DOB as incorrect date
  • TWEAKED Better handling of the birthday field in the admin
  • FIXED Connection to Groundhogg sending service account in guided setup not starting
  • FIXED First & Last name field only accepts values longer than 3 characters. Changed to a minimum of 2 characters.
  • FIXED failed event notifications missing failure reason.
  • FIXED form errors not showing on managed submit page.
  • FIXED Missing roles after updating to
  • FIXED Minor DB error introduced in last update (2019-09-22)

  • FIXED Reporting time ranges not being respected in some cases by the Contact Query
  • FIXED Calling static method from instance causing PHP notice. (2019-09-20)

  • FIXED ‘upload_files’ cap is removed if uninstalling and “remove all GH data” is enabled in the settings.
  • FIXED leadsource cookie in js not matching up with PHP causing leadsource to be missing in some cases.
  • FIXED First & Last will no longer be modified to strtolower or ucwords
  • FIXED Contact appearing in query twice if has 2 tags which are both in the tags_include request (2019-09-18)

  • ADDED More developer hooks and filters.
  • TWEAKED Show merged content email in the add view instead of plain body in div.
  • FIXED Bottom bulk action not working
  • FIXED Image SRC with query strings were being unfairly sanitized when email is sent. (2019-09-17)

  • ADDED Preview pagination to paginate records during the import mapping process
  • ADDED ALT-Body editor to the new Simple Email Editor
  • TWEAKED Parse email content for images and sanitize their styling for guaranteed responsiveness.
  • TWEAKED Mapping User/Owner ID also supports user email and username as well as ID
  • FIXED export list function only exports the contacts listed and not all the contacts from the query.
  • FIXED Updated the POT file.

2.0.11 (2019-09-16)

  • ADDED New simple email builder option for users who’d rather use the WP editor instead of our email builder.
  • ADDED Show Premium SMTP options in email step during guided setup.
  • ADDED Safe mode. Enables the easy temporary deactivation of other plugins.
  • TWEAKED Shortened the tracking link markup
  • TWEAKED remove editor styles from email text block.
  • FIXED Email Browser view sometimes not loading email at correct height.

2.0.10 (2019-09-14)

  • ADDED Option to disable behaviour of the logged in user taking precedence over tracking link information.
  • ADDED Compatibility to extend the preferences center.
  • TWEAKED Failed event notifications will send a max of 1 per minute.
  • TWEAKED Updates amd Install tools tab shows display names instead of identifiers.
  • FIXED Typo in ‘cancelled’ status.
  • FIXED CSS issue in “Add Step” modal in the V2 editor. (2019-09-13)

  • ADDED German translation. Shout out to Josef Weindler for making that possible.
  • FIXED updated POT file to include new and updated strings.
  • FIXED IP geolocation from not working due to the referer not being set properly. (2019-09-12)

  • FIXED File access URL (2019-09-12)

  • ADDED Support for serialized contact meta on the custom info page.
  • ADDED Support for syncing contact meta in the user sync tool
  • ADDED Support for manually starting upgrade process for Groundhogg and other extensions
  • ADDED Support for manually starting install/activation process for Groundhogg and other extensions
  • ADDED New “change preferences” link takes contacts to the profile preferences page
  • TWEAKED “Unsubscribe” link now takes contacts to the manage preferences page instead of the profile preferences page
  • TWEAKED Reporting time ranges
  • FIXED Events actions in the contact activity tab not redirecting back to contact record.
  • FIXED View all events in contact activity tab not showing contact specific events. (2019-09-11)

  • FIXED Unable to save email as ready.
  • FIXED Bug where content not deselected in email editor after update (2019-09-11)

  • TWEAKED Email saving to only post required arguments instead of whole form
  • TWEAKED Error notice JSON will now also include the original error code and message
  • TWEAKED better support for HREF and SRC attributes in array_to_atts()
  • FIXED Alt-body newlines missing when auto generated from html content.
  • FIXED Clicking on a funnel/step/contact in the events table shows events related to the query
  • FIXED Error during saving email causing block toolbar to dissapear
  • REMOVED API V2, it wasn’t being included anyway so it’s just taking up file space
  • REMOVED WP Bakery Block, wasn’t working anyway and WP Bakery is no longer relevant to support (2019-09-10)

  • TWEAKED DB queries make better use of the wp_cache system.
  • TWEAKED Tracking stats optin now requires a choice of which free extension you want to avoid confusion.
  • FIXED possible function re-declaration causing fatal error.
  • FIXED File access rule for admins not allowing them to download contact files. (2019-09-09)

  • FIXED Unconfirmed view in contacts table showing all contacts
  • FIXED Contact query using groupby in count request causing unexpected behaviour (2019-09-07)

  • FIXED Unable to download export files.
  • FIXED Contact Query returning an array during when counting if count is 0
  • FIXED GeoIP not working after switch to wp_remote_get (2019-09-06)

  • FIXED first and last name checked eve if not present in form
  • FIXED manage-page added to posts db every time plugin updates
  • FIXED Bug where nested replacements caused fatal error. (2019-09-06)

  • ADDED Action to reset tags in the event of a failed install.
  • FIXED Various recommendations from the WP Plugin team
  • FIXED Import function for contacts not working. (2019-09-05)

  • FIXED Various security issues. (2019-09-05)

  • FIXED Arbitrary readfile vulnerability (2019-09-05)

  • TWEAKED Contact Query class optimized
  • FIXED bug where admin user linked to contact record on update.
  • FIXED bug completed events shows zero when running queue manually.
  • FIXED redirect after running queue to remove url params from query string.
  • FIXED missing translation context in form errors. (2019-09-04)

  • FIXED Managed page query not working. (2019-09-04)

  • ADDED missing translation contexts to preferences page
  • ADDED Screen options panel to change number of records per page
  • TWEAKED rewrite url structure for managed pages now open to modification if you know what you’re doing.
  • FIXED SMS page orderby broken (2019-09-03)

  • FIXED pagination bug when manually selecting a page.
  • FIXED DB query bug showing too many results on tags page.

2.0.9 (2019-09-03)

  • ADDED Plugins API benchmark! Developer happiness is now at an all time high!
  • ADDED Plugins API endpoint for using webhooks to move people through funnels.
  • ADDED Birthday field mapping for importer and form integrations.
  • TWEAKED Added compatibility for DB query vars with similar names. e.g. ‘val’ & ‘value’ or ‘relation’ & ‘relationship’
  • FIXED missing minified file for the delay timer action.
  • FIXED Field label showing even if no label in the form builder. (2019-09-02)

  • ADDED Rewrite rules list to system report.
  • TWEAKED Create user bulk job now has a ‘Role’ option.
  • FIXED Bug in Abstract Table class causing fatal error in some extensions in Admin view.
  • FIXED Bug where adding query strings to url in email builder caused a 404 error.

2.0.8 (2019-08-30)

  • ADDED birthday field support for the form builder and contact record.
  • ADDED option to disable the JS page tracking script.
  • TWEAKED optimized some DB queries and tables
  • TWEAKED form shortcode supports do_replacements to autopopulate form fields with replacements info.
  • FIXED Un-needed tracking script loading on admin pages.
  • FIXED Form impressions cookie checked before logging new impression. (2019-08-29)

  • FIXED Error adding .htaccess to protected /groundhogg/ uploads folder
  • FIXED function imap_open checked if exists before usage.

2.0.7 (2019-08-29)

  • ADDED file_access_url() to create access links for protected Groundhogg files.
  • FIXED Admin_Page::admin_url() not using based admin_url() funtction.

2.0.6 (2019-08-28)

  • FIXED File uploader causing error when file is not uploaded.

2.0.5 (2019-08-28)

  • FIXED Typo in the Sending Service settings
  • FIXED Updates showing for inactive premium extensions.

2.0.4 (2019-08-28)

  • FIXED Fallback from details missing when email sending from contact owner but no owner is set.
  • FIXED Non-required phone field throwing validation error.
  • FIXED Broadcasts not showing in table.

2.0.3 (2019-08-27)

  • ADDED class to allow for old versions of extensions to update.
  • FIXED EDD_Updater class not being initialized for 2.0 versions of extensions.

2.0.2 (2019-08-27)

  • FIXED verbage in email for tracking optin.
  • TWEAKED HTML utils link picker class.

2.0.1 (2019-08-27)

  • See all new changes here.
  • USE Namespace, autoloader, and more goodies to improve code organization.

  • FIXED bug that allowed the Create User step to add users to any subsite on a multisite.

  • ADDED Preparation for upgrading to 2.0

  • FIXED {id} not working
  • FIXED GDPR & Terms compliance being removed when updating a contact

  • FIXED Altbody being included in plain text emails when using GH_SS_MAIL function.
  • FIXED Street Address 2 should not be required.

  • ADDED {id} replacement code

  • FIXED comptibility bug with plugins which include forms on all admin pages.
  • FIXED Plaintext emails being sent out with missing line breaks when using the Groundhogg sending service.


  • ADDED extra nonce to frontend form impression checks to ensure request is intentional.
  • ADDED extra nonce to frontend page view checks to ensure request is intentional.
  • ADDED option to include full or minified files.
  • FIXED v2 Elementor integration conflict
  • FIXED v2 Elementor integration script inclusion.


  • Just a notification to prompt users to update to plugin with resolved vulnerabilities.


  • ADDED local images to assets/images
  • FIXED remote code execution (RCE) vulnerability (
  • REMOVED Extraneous jQuery library.


  • FIXED Fixed the new Elementor integration which was disabled in 1.3.1. Elementor Integration now supports complex field mapping.


  • ADDED New meta_query & meta_query_count helpers to the DB widgets to cut down on duplicate code.


  • HOT FIX for dashboard db error when no new contacts have been created.


  • HOT FIX Rollback Elementor integration to previous version as doesn’t work when multiplte forms on same page.


  • ADDED Tags settings tab to add options for tag mapping
  • ADDED optin status tag mapping so that it is easier to reference a broad scope of contacts without having to manage the tag associations through funnels.
  • ADDED option to enable/disable cron job via GHSS from settings page.
  • ADDED Tools Specific page for managing imported lists, exported lists, system info and other tools to be added in the future.
  • ADDED Field mapping when importing contact lists, as well as a page to re-import lists and delete imported lists.
  • ADDED New method for exporting lists, lists are now generated server side and are stored in an exports folder, exports can be re-downloaded multiple times.
  • ADDED Api for mapping fields for form integrations and Zapier integration for more flexibility.
  • ADDED Field mapping to the Elementor integration.
  • TWEAKED Major performance overhaul of report generation for the dashboard. reports arte now generated much quicker when the number of contacts is > 20,000
  • TWEAKED Users are no longer auto converted to contacts upon installation. you must now sync contacts via the tools page.
  • TWEAKED Overhauled the file system for contact specific uploads, as well as for imports/exports.
  • TWEAKED X-Mailer header now set as Groundhogg.
  • TWEAKED skipping email confirmation emails will result in a skip rather than a WP_Error
  • TWEAKED funnels events which return false will soft fail and skip rather than hard fail with a WP Error.
  • TWEAKED Changed MOST instances of “new WPGH_Contact()” to “wpgh_get_contact()” so that the contacts cache is checked rather than querying the DB every time.
  • TWEAKED Changed MOST instances of “new WPGH_Step()” to “wpgh_get_funnel_step()” so that the steps cache is checked rather than querying the DB every time.
  • TWEAKED implemented a tag cache array to avoid duplicate db queries.
  • TWEAKED the Admin page abstract class to include more beneficial functions.
  • TWEAKED Obfuscated the email address on the email preferences page.
  • TWEAKED Broadcast scheduling gets sent through new bulk jobs system.
  • FIXED EDD Plugin Updater slowing down admin dashboard with extraneous call to api endpoint.
  • FIXED Renamed EDD Plugin Updater to prevent conflicts from another plugin.

  • HOT FIX Send all emails in HTML content type as GHSS does not like plain text emails. Use ‘the_content’ filter on plain text emails.

  • HOT FIX Elementor form integration broken after last update.


  • ADDED Send email notifications when event fails option.
  • ADDED Test method for GHSS.
  • TWEAKED Moved Misc settings to a misc tab
  • TWEAKED SMS Step now has a skip if no phone available option.
  • TWEAKED GH SS now uses an extended version of PHPMailer for better email encoding and support for attachments.
  • FIXED checking for option that does not exist in SMS Step. (Non lethal)

  • HOT FIX for WP mail bug when using GHSS.


  • ADDED Submission handler function for form extensions.
  • ADDED Shoddy column support for email builder.
  • ADDED Link picker for Button & Image Email blocks
  • ADDED Warning when sending email from an email address which has a different host than the given site.
  • TWEAKED improved link picker for link supported benchmarks.
  • TWEAKED Form File input visual ques.
  • TWEAKED Form Date picker now uses jQuery datepicker UI instead of browser date select.
  • TWEAKED Contact now has a meta cache array for faster querying of metadata
  • FIXED Iframe in modal now has proper scroll bar.
  • FIXED wp_mail() bug.
  • FIXED Site stats collection had num contacts and num funnels reversed.


  • TWEAKED Better warning for the global multisite db network.
  • FIXED Does not drop main network DB if subsite is deleted when the global DB option is enabled.


  • ADDED DB status to system report.
  • FIXED typo in notice when changing a contacts email address.
  • FIXED Dashboard not loading if circle graph report is in closed position.


  • ADDED progress bars to import/bulk delete tools to provide visual keys for progress.
  • ADDED Last broadcast Report in the dashboard.
  • TWEAKED Broadcasts are now scheduled in batches to avoid timing out for larger lists on bad hosting.
  • FIXED Add note not working. Code removed accidentally.


  • TWEAKED wpgh_get_contact now uses a cache to avoid multiple creations of similar objects.
  • TWEAKED Added option to send transactional emails through the Groundhogg Sending Service.
  • FIXED Send in TimeZone not scheduling events at the correct time in some cases.


  • ADDED Updated API methods v3.
  • ADDED My templates to emails section for easy duplicating of emails.
  • ADDED Ability to search and copy previous emails from the my-emails tab.
  • TWEAKED When duplicating and email append (Copy) to the subject line.
  • TWEAKED New UI for adding options and tags in the form builder.
  • TWEAKED API only loads when wp_rest_init is invoked rather than loading all of the classes ahead of time.
  • TWEAKED API Errors now have more revealing HTTP response codes.
  • TWEAKED Frontend tracking script now uses the REST API instead of admin-ajax.php for better performance.
  • TWEAKED Rather than explicitly enabling the API, a user must now explicitly disable it due to the fact we now use the API for most basic functionality.
  • FIXED Form Impression reporting bug only tracking impressions for existing contacts.


  • TWEAKED Reporting widgets can also register a shortcode for custom admin pages
  • TWEAKED Improved class hierarchy for custom reports in the dashboard
  • TWEAKED SMS Api & Email API now use id_or_email
  • FIXED Global Multisite DB queue error
  • FIXED Email & SMS API Sending notification should be POST, not GET


  • ADDED Schedule broadcasts at time in subscribers’ timezone.
  • ADDED Schedule timers to run in subscribers’ timezones.
  • ADDED Schedule SMS Broadcasts to run in subscribers’ timezones.
  • ADDED Geographic reports to dashboard
  • ADDED Pie chart of optin status report
  • ADDED Tools menu item.
  • ADDED Admin menu base class for use in extensions.
  • TWEAKED Funnel Breakdown will now also feature a line chart of contact progress
  • TWEAKED Emails sent using the Groundhogg Sending Service will not longer use wp_mail as backup for error reporting purposes
  • TWEAKED The Groundhogg Sending Service url is now to improve the speed of requests.
  • FIXED Confirmation emails not skipping if email is already confirmed.
  • FIXED Email HTML not working


  • ADDED Automatic GEO location via when a form is submitted and IP is collected.
  • ADDED Extrapolate location from IP via contact record.
  • ADDED Timezone and IP field to location section of contact record
  • TWEAKED changed “Address” to “Location” in contact record
  • TWEAKED excluded protected meta data from custom info tab


  • ADDED Gravatar image to contact profile.
  • ADDED Ability to unlink contact records from user accounts.
  • ADDED Guided Setup UI for new installations.
  • ADDED Central database for SMS so it can be used throughout plugin.
  • ADDED UI for managing SMS globally
  • ADDED Error reporting for failed events in the events screen.
  • ADDED Process events direct from contact activity tab.
  • ADDED Support for manually confirming a contact’s email address.
  • ADDED Login abandonment funnel template
  • ADDED SMS API endpoint.
  • ADDED IMAP Test connection UI and more Bounce checker settings.
  • TWEAKED improved email and instruction copy in the funnel templates.
  • TWEAKED Add note UI rather than edit notes directly
  • TWEAKED form fields now default to required false, so no need to add required false into the form shortcode. Explicit required=”true” now required.
  • TWEAKED removed SMS character limit.
  • TWEAKED removed 5 second check preventing emails sent in succession, no longer needed.
  • FIXED Email content centered if not explicitly given left align
  • FIXED Emails sent if in draft mode.
  • FIXED Non required fields are being required by the submission handler.


  • ADDED Search form to welcome page for docs help
  • ADDED Distinct helper methods to Funnel Parent Class
  • TWEAKED Welcome page now queries docs direct from documentation site
  • TWEAKED Welcome page now queries extensions direct from store
  • TWEAKED Stats collection will retrieve display_name


  • FIXED First & Last being set to null if not present in form.
  • TWEAKED Form spam verification is now more strict.
  • TWEAKED Is submission fails information is saved so you do not need to re-enter it all.


  • FIXED File upload file type specification not working
  • FIXED File upload not working if files not specified


  • ADDED New admin form submit action accessible from the contact record
  • TWEAKED Added spacing around button block & fixed centering issue for improved usability in outlook.
  • TWEAKED converted spacer to table format for outlook compat
  • TWEAKED Default email template for improved outlook compat
  • TWEAKED Image block now also uses width attribute for compatibility across platforms.
  • TWEAKED New filter and action hook guide
  • TWEAKED Form builder content area now sizes to the content automatically
  • TWEAKED Form builder content is auto formatted
  • TWEAKED Long form country is now converted to country code when importing
  • FIXED Email report wrongly included queued email statistics
  • FIXED Reporting month time ranges are now more specific


  • ADDED Prompt to allow anonymous usage tracking.
  • ADDED Logged in benchmark
  • ADDED Ability to deactivate a license from the licenses tab in the settings.
  • ADDED Ability to add tags based on radio button, dropdown selection, or checkbox enabling in the form builder.
  • TWEAKED Improved localization all around.
  • TWEAKED Quick UI improvement for creating emails from the broadcast view.
  • TWEAKED added URL params for pages with dynamic content to help excluding in various caching plugins.
  • TWEAKED API for ordering sub menu items
  • TWEAKED Renamed Groundhogg submenu item to Welcome
  • TWEAKED Various CSS fixes
  • TWEAKED SMTP check now checks for MOST WP SMTP plugins as well as Groundhogg service before publishing notice.
  • TWEAKED Referral prompt is now removed if the installation has active extensions.
  • TWEAKED Form builder is a little bit more specific when including fields to be added
  • FIXED z-index issue causing admin bar in editors to display above the admin bar.


  • ADDED Elementor Forms Integration.
  • TWEAKED Upped limit of contacts per request during contact import from 25 to 100 to limit the number of requests.
  • FIXED Import script making concurrent requests causing 503 errors for really large lists. Requests are now consecutive instead.

  • ADDED AR_es locale
  • TWEAKED Import contacts efficiency.
  • FIXED pass by reference notice in contact edit screen.


  • ADDED Tabbed contact record sections to cut down on scrolling.
  • FIXED Var dump $_FILES in contact record update.
  • FIXED Modal defaults only being loaded in funnel builder causing the modal not to work


  • ADDED Quick export button to contacts view
  • ADDED Import link to contact page
  • ADDED Actions for registering new From builder shortcodes
  • ADDED much better way of handling form errors.
  • UPDATED New REST API method for GH Email & SMS service that significantly improves usage performance and provides superior error reporting.
  • FIXED Some funnel builder assets loading on every page.

  • ADDED Failed status to Events table
  • FIXED Rest API function typo.


  • FIXED fatal error on multisite conversion of users to contacts.
  • FIXED email preferences center not being installed on multisite subsites.

  • ADDED WP Bakery block support
  • REMOVED Semaphore usage in the event queue as it was causing problems.
  • FIXED Call to deprecated function get_user_by_email()

  • FIXED Fatal error when adding users or updating user roles.

  • ADDED Translations for es_ES, fr_FR, fr_CA, ja, pt_BR, ro_RO
  • ADDED Translations
  • FIXED PHP Fatal Error when activating for the first time.

  • TWEAKED Base API Class
  • FIXED PHP error from direct accessing unresolved array.
  • FIXED PHP Fatal error when activating.

  • ADDED Beaver Builder form block.
  • TWEAKED Test Email selection will now default to the current user.
  • TWEAKED More proper error messages when now test email is selected.
  • FIXED Contact => Account linking was not working properly.


  • ADDED Iframe support for Forms! You can now paste forms into your CRM on any site anywhere.
  • ADDED Support for custom page builder blocks. Elementor is the first to be added. Others will come later.

  • ADDED Raw email confirmation link that can be put in buttons.
  • TWEAKED Create user step will now update a users level if the user already exists instead of adding another action to do so.
  • TWEAKED Renamed the cron job to wpgh_process_queue for better semantics.
  • TWEAKED Checking bounces now occurs hourly rather than with the queue process to avoid anything breaking being buggy.
  • TWEAKED Some benchmarks process the queue instantly. The following benchmarks are Forms, Link Clicks, Page Views & Email Confirmations
  • FIXED when creating a new email in a funnel you had to select the email after creating it which was annoying. The email is now auto updated as expected.
  • FIXED When editing an email and clicking “Save Changes” in the funnel builder not working.

  • ADDED Option to change the queue interval time.
  • ADDED plugin API to the multisite options page.
  • TWEAKED CSS for inputs & text areas hardened to not be overwritten by WC.

  • ADDED UTM Reporting
  • ADDED Preview modal for the form builder.
  • ADDED White labelling support
  • TWEAKED better tracking support for UTM variables
  • TWEAKED events belonging to a deleted step get move forward to the next available action.
  • FIXED partial match URL not accepting partial match strings.
  • FIXED wrong verbage for reporting toggle caused by altered css ID

  • ADDED Source Page report to dashboard.
  • FIXED Bug where empty title showing on contact record with no first or last name.
  • FIXED Settings page setup so that extensions can add option easier.

  • FIXED Create user step setting optin status to unconfirmed by accident.


  • ADDED New Contacts By Social Media Source Report
  • ADDED New Contacts By Search Engine Source Report
  • TWEAKED Added new reporting times to funnel reporting view in correlation with the dashboard
  • FIXED Collapse status of steps saved.
  • FIXED Bugs where collapsed report widgets caused JS Errors.

  • ADDED time to next queue run in the events table
  • FIXED manually process events button CSS

  • ADDED Export ability to reporting widgets
  • ADDED several new default reporting time ranges.
  • ADDED funnel breakdown report widget
  • ADDED Active Funnels report widget
  • ADDED Lead Source Activity report
  • ADDED reporting capabilities for admin and marketers
  • ADDED Compare option for META_QUERY in WPGH_CONTACT_QUERY class
  • FIXED could not collapse step if newly added.
  • FIXED could not delete all tags from a contact
  • FIXED file upload error on contact editor page when no files uploaded
  • TWEAKED moved dashboard reporting to widgets in the WP admin dashboard
  • TWEAKED the delay time between consecutive events have been changed from 10 seconds to 0 to allow for recursive and immediate queue iteration.
  • TWEAKED Cron schedule changed from every 10 minutes to every 5 minutes.
  • REMOVED Dashboard page


  • ADDED replacement codes {owner_first_name} & {owner_last_name}
  • ADDED date_picker generator to the HTML helper class
  • TWEAKED steps are now collapsible for better ui
  • TWEAKED Form layout CSS for better compatibility
  • TWEAKED Ignore tracking link replacement on mailto: links
  • TWEAKED Removed the ajax process functionality for queue events altogether because it was eating up too many resources and causing server timeouts in edge cases, implementation has been left included in the event someone comes up with a better way to tackle it. The best way to ensure events go out on time is to set up the server scheduler
  • TWEAKED Queue will run recursively until all successive scheduled events are completed.
  • FIXED Textarea in form builder not showing options

  • Fixed Contact Scripts breaking quick edit links in admin area


  • ADDED Contact File Management. Upload files from both admin and Frontend to contact record.
  • ADDED email management and sending via the REST API.
  • ADDED Date and Time form fields
  • FIXED grammer and spelling mistakes returned via the REST API.
  • FIXED Bug where user role tags were not being applied properly.

  • ADDED Account Creation button in contact record if the contact does not have an associated user account.
  • TWEAKED API V2 Improvements in json responses
  • TWEAKED default method for hooking into the user_register hook that in turn triggers the Account Created benchmark

  • FIXED Nested function loop causing 500 level error

  • TWEAKD MAX Ajax queue calls is 5 per page view to limit server load.
  • FIXED Upgrader class causing 500 error in admin
  • FIXED Form Shortcode calling class constructor with to many arguments.


  • ADDED introduction of the Marketplace
  • ADDED user roles re auto converted to tags and applies to the contact so sending broadcasts to specific users becomes easier
  • ADDED the standard create_contact_from_user function that can be used in multiple contexts…
  • ADDED upgrade class to handle updates
  • ADDED better API structure and authentication
  • ADDED API tab in settings area
  • ADDED Standardized method for updating email marketing preferences
  • ADDED Field timer for dynamic delay times.
  • FIXED Email block toolbar disappearing after save

  • TWEAKED Role Changed benchmark now also supports add_user_role as well.
  • TWEAKED Double check max event setting so as not to imply it could be 0
  • FIXED wrong setting name for Email Confirmation page


  • ADDED Gutenberg Form Block
  • TWEAKED HTML block in email builder support code-mirror now
  • TWEAKED minified ALL js files for faster performance
  • TWEAKED checkbox field now has visible value option in form builder
  • FIXED Email HTML editor view not working when editing emails in the funnel builder
  • FIXED serialized meta was not being duplicated properly when duplicating campaigns

  • ADDED Email browser page auto created on install
  • FIXED Meta data tables not registered during plugin activation causing email preferences funnel to not register correctly.
  • FIXED steps being added if dragged in but not dropped.
  • TWEAKED notice if max_input_vars to small for funnel.
  • TWEAKED removed step_order input arg from funnel editor to conserve max_input_vars since it wasn’t being ued.


  • FIXED slashes appearing when saving contact names with the [‘] of [“] symbol.
  • FIXED quotes escaped in email subject line and preheader.
  • TWEAKED better handling of changing email addresses for a contact.
  • TWEAKED exclude meta list so that meta data does not appear moe than once

  • ADDED support articles to support articles column on welcome page
  • TWEAKED double check semaphore locking is enabled
  • FIXED get_pages() not working on global multisite

  • ADDED Go back button in broadcast report if the broadcast has yet to be sent.
  • TWEAKED Export function now exports all the contact meta as well.
  • FIXED mixing source_page & page_source, now just page_source

  • ADDED New link click benchmark
  • ADDED Exclude list for scheduling broadcasts
  • FIXED Settings bug where privacy_policy and terms were overwriting each other.

  • Forgot some critical files


  • ADDED code to prepare for bounce responses from AWS
  • ADDED new graph for form activity.
  • ADDED Replacement Codes Popup
  • TWEAKED View email in browser now has a shortcode and a specific page to use.
  • TWEAKED the settings page is now much more extendable for extra plugins.
  • TWEAKED there is now a check to see if a “robot” is submitting form. All robots will fail.
  • FIXED Form builder was using dropdown shortcode but that shortcode wasn’t actually registered…


  • ADDED Interactive Broadcast pie chart.
  • ADDED Dashboard Reports.
  • TWEAKED Form Address Field to include proper placeholder information
  • TWEAKED Form Address Field to have better condensed layout
  • TWEAKED Report to use the jquery Flot library
  • TWEAKED Import contact trimming column headers
  • TWEAKED Better error reporting when contact import fails.

  • FIXED Line which included the report missing
  • TWEAKED added new code for the default form.


  • ADDED New Funnel Reporting Graph at top of funnel when in reporting mode.
  • ADDED compatibility for modal outside of funnel editor.
  • TWEAKED New form build improvements. Popup UI for adding fields in the form builder.

  • ADDED Introduced funnel warnings for date timers with descending dates and dates that are in the past.

  • ADDED some mobile compatibility for the funnel view. Mostly just for basic edits and funnel reporting purposes.
  • FIXED bug where cron was called a private function.

  • TWEAKED Groundhogg email service no sends email along with sender name + sender email
  • TWEAKED Event quueue locking using semaphore if it exists as a library.

  • Fixed bug where broadcasts were always being schedules for 9:30 AM despite other settings.
  • TWEAKED Cleaned up some event queue code
  • TWEAKED Switched back to an older method of queue traversal. There is now only a single ajax request that can process the event queue every 30 seconds to avoid queue collisions.


  • ADDED SMS messaging step. Uses the same credit system as emails.
  • FIXED Misc bug fixes.

  • FIXED contact->update() method not updating properties
  • TWEAKED parent methods in WPGH_Funnel_Step no longer call __doing_it_wrong
  • TWEAKED Queue now gives a thread ID to check on each while loop if the queue is the only one in action.
  • TWEAKED Queue will spawn separately on multisite unless global multisite usage is enabled.

  • FIXED Share link not exporting emails or tags.
  • TWEAKED Hooks for deleting and saving contacts


  • ADDED System Report
  • ADDED Conversion Rate Reporting for the Form Fill Step.
  • ADDED Skip Confirmation emails if already confirmed.
  • TWEAKED Email step now defaults to most recent email instead of oldest email.
  • TWEAKED “Form Fill” step now called “Web Form” step.
  • FIXED Email link picker bug replacing line before with link picker text if adding link at the beginning of a text block.

  • ADDED Share link to allow the sharing of funnels via links.
  • TWEAKED Disabled autocomplete for broadcast date picker.
  • FIXED Clicking image or button in email editor cause page reload.
  • FIXED PHP warning if a tag is deleted but a broadcast report is trying to access it.

  • FIXED queue failsafe bug


  • FIXED could not use function in right context fatal error.
  • FIXED multisite funnel capability comparing string to int.
  • TWEAKED adding emails is also now done through the admin modal system.
  • TWEAKED better handling of edit email link when email changes.
  • FIXED activation error “you do not have permissions…”
  • TWEAKED DBs now clean themselves whenever stuff is deleted…
  • ADDED GH email sender API!
  • TWEAKED added failsafe event running to ensure that no event is run TWICE within 5 minutes…
  • TWEAKED emails cannot be sent within 30 seconds of each other to a contact.
  • TEAKED email sending delayed by 30 seconds


  • FIXED Emails were not updating from the funnel editor when click the “save changes button” in the modal. Click said button will now update the email.
  • FIXED Implemented the queue not being able to be started by two different requests.
  • FIXED multisite bugs
  • FIXED Tracking will force ssl if SSL is present in the blog url option.
  • FIXED duplicating steps in funnel literally duplicating the step which helps no one.
  • FIXED contact count not updating properly when contacts deleted.
  • FIXED longer imports using different import tag.
  • TWEAKED The create user step will now ask which blog you want to add the user too if on multisite.
  • TWEAKED if the funnel step is not available for the funnel builder than show an unkown question mark.
  • TWEAKED an event cannot be added to the queue if there is a similar event within 60 seconds of the time its being added.
  • TWEAKED if global multisite setting is enabled you can choose to only run an event if the associated step can be run by the current blog.


  • Added Funnel updates automatically when the modal closes.
  • Added Contacts which have unconfirmed emails will show as (Unconfirmed) int he table view
  • Added new wpgh_get_contact( $id_or_email ) function instead of new WPGH_Contact
  • Fixed removed console.log() calls.
  • Added form CSS to auto style some elements for compatibility with the from styling extension.
  • Changed the benchmark picker to be order by OPT GROUP and only include active steps.


  • Changed WP_Popup to be a singleton class. Enqueue with wpgh_enqueue_modal(); Calling new WPGH_Popup() will throw an error.
  • Added WP_Popup support for source from URLS. Use #source=
  • Added WP_Popup support for width and height from init href. Use #source=id&width=400&height=500
  • Fixed links which trigger the popup now prevent default behaviour
  • Changed editing emails in funnels to open up the modal with an iFrame of he editing screen rather than opening up a new tab for better UX.


  • If a label is not present in a custom text field then use the placeholder as that is the next likely place.
  • Added Popup modal from Styling extension to core instead.
  • Added ability to add contacts to a funnel via the edit funnel UI.
  • Added ability to add contact to a funnel via the edit contact UI.
  • Added “mailto” option in List-Unsubscribe header.
  • Added “Import Y-m-d H:i:s” added to contacts when imported.
  • Added spinners next to import/export buttons.
  • Added BULK delete by tag to the tools.
  • Changed class WPGH_Importer to WPGH_Bulk_Contact_Manager
  • Fixed import status showing 100% when actually not done.
  • Fixed import/export js loading on every page, no only loads on tools page
  • Fixed superlinks not redirecting on multisite.


  • Changed WPGH_Contact_Query can now accept optin_status as an array of status options.
  • Added the broadcast reporting view
  • Fixed email preferences form not being installed correctly.


  • Added WPGH_Form instance to wpgh_form_code filter
  • Added Columns and Rows to the Funnel Form Editor
  • Added base class CSS for frontend forms
  • Fixed text editor bar is now sticky when scrolling.


  • Changed to a vastly superior layout in the funnel editor.
  • Fixed load funnel editor scripts in head rather than in footer.
  • Changed editing view for emails to make similar to new Funnel Editor layout.
  • Fixed load email editor scripts in head instead of footer.


  • Stricter checking of whether a contact exists or not.
  • Fixed wonky text editing in email editor.
  • Allowed for HTML and richtext in the form element.


  • Added round robin functionality to Apply Owner step.
  • Changed Sales Managers can only see contacts they are the owner of.
  • Fixed the create user step now links a user record to a contact if it exists… may be redundant but it’s best to make sure.
  • Fixed [attributes] arg in HTML class being escaped when it shouldn’t be
  • Fixed funnel stats refresh not working as a result of new ajax save.
  • Fixed the phone field not saving to primary phone.
  • Simplified the email editor text bar.
  • Fixed extensions errors when licensing new extensions
  • Fixed multisite config by retrieving options with get_blog_option rather than switch_to_blog
  • Began Adding API Stuff.


  • Fixed Apply owner step not saving.
  • Fixed date timer select box for no reason.
  • Added disable toggles to delay and date timers for testing
  • Fixed Checkbox required=”false” still required
  • Fixed {_meta} replacement code showing as Array
  • Changed form buttons adding to bottom of text
  • Changed funnels save via AJAX instead of from POST


  • Fixed global multisite bugs where restore current was never being called resulting in weird behaviour.


  • Fixed activation fatal error.
  • Added multisite functionality. Use the same info across all subsites in the event you have a multisite setup.


  • Fixed text color picker from simple editor not working, again.
  • Added filter to email blocks to make it easier to add custom blocks.


  • Added simple editor to the form fill benchmark. Buttons now allow the user to quickly add standard fields to the forms without the need to view complete documentation.
  • Fixed bug in form address field that caused a warning
  • Fixed {_blah} replacement code not working because of unregistered code

0.9.12 / 0.9.11

  • Updated bounce checker Library. Has a few bugs that were incompatible with PHP 7.0 +
  • Fixed function name formlift_ to wpgh_ in locations.php
  • Fixed meta not being saved via custom form fields
  • Added security and copyright to all file headers
  • Added .htaccess to templates/funnels
  • Added email preferences funnel template
  • Changed the form shortcode to be a text editor in the step itself, needs updated documentation.


  • Fixed email preferences not working AT ALL, oops…
  • Added last_optin to submission


  • Finished implementing the Create User Action.
  • Fixed bug where add from previous emails gives a warning.
  • Tracking now uses the Logged in user as a contact if it exists so that if you’re logged in replacement codes
    among other functionality will work on the front end.
  • Added reporting ranges to the active contacts column in funnel list


  • Added Welcome Page
  • Changed menu structure
  • Added image assets
  • Added address section to contact record.
  • Added replacement codes {phone}, {phone_ext} & {address}
  • Added locations functions to get lists of known geographic areas
  • Fixed bug where clicking the confirmation link in tracking history resulted in a db error.


  • Added send email function to contact record.
  • Fixed Email Search Bug when searching in select2 email picker.
  • New HTML Helper “dropdown_owners”
  • Owner field now extended to include new roles “Marketer” & “Sales Manager”
  • Fixed Saving Contact owner not working when adding new contact


  • Fixed bug when deleting contacts with no tags caused a warning.
  • Added emails send plaintext version as well as HTML for better spam score.
  • Added alt tag to tracking image
  • Added List-Unsubscribe header


  • introduction of complex roles and caps
  • Minor UI fixes regarding select2 library


  • fixed {meta} not provided meta data
  • fixed exporting funnel throwing errors
  • added duplicate funnel link to table
  • added empty trash link to emails table
  • added filter to modify settings array


  • Moved is recaptcha enabled check to functions.php
  • fixed returning string instead of array when doing recaptcha check.
  • get_tags() will now return an empty array instead of false.


  • Add option to remove ALL data from WP when uninstalling Groundhogg
  • Fixed gh_referer not being set when leadsource tracking


  • Pre-release with some bug fixes


  • Pre-release for testing installation from repo


  • First Commit