{"id":238129,"date":"2025-07-08T13:33:27","date_gmt":"2025-07-08T13:33:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cf7-to-actionnetwork-integration\/"},"modified":"2025-07-08T13:34:12","modified_gmt":"2025-07-08T13:34:12","slug":"form-integration-for-action-network-and-contact-form-7","status":"publish","type":"plugin","link":"https:\/\/bel.wordpress.org\/plugins\/form-integration-for-action-network-and-contact-form-7\/","author":23310507,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.8.5","requires":"4.7","requires_php":"7.4","requires_plugins":null,"header_name":"Form Integration for Action Network and Contact Form 7","header_author":"procom.dev","header_description":"Use Contact Form 7 to send data directly to ActionNetwork with automatic field mapping!","assets_banners_color":"fadccc","last_updated":"2025-07-08 13:34:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/procom-dev\/form-integration-for-action-network-and-contact-form-7","header_author_uri":"https:\/\/procom.dev","rating":0,"author_block_rating":0,"active_installs":10,"downloads":346,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"procomdev3","date":"2025-07-08 13:34:12"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3324351,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3324351,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3324351,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3324351,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3324351,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3324351,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Main section of the plugin, where you just enter the Action NEtwork API Endpoint.","2":"The plugin automtically matches you fields from CF7 to the official Action Network\\'s Core Fields.","3":"You can also add and remove tags to people submitting you form."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[143241,244677,5445,1152,597],"plugin_category":[42],"plugin_contributors":[87575,244678],"plugin_business_model":[],"class_list":["post-238129","plugin","type-plugin","status-publish","hentry","plugin_tags-action-network","plugin_tags-actionnetwork","plugin_tags-cf7","plugin_tags-contact-form-7","plugin_tags-integration","plugin_category-contact-forms","plugin_contributors-mariovalney","plugin_contributors-procomdev","plugin_committers-procomdev3"],"banners":{"banner":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/banner-772x250.png?rev=3324351","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/icon-128x128.png?rev=3324351","icon_2x":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/icon-256x256.png?rev=3324351","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/screenshot-1.png?rev=3324351","caption":"Main section of the plugin, where you just enter the Action NEtwork API Endpoint."},{"src":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/screenshot-2.png?rev=3324351","caption":"The plugin automtically matches you fields from CF7 to the official Action Network\\'s Core Fields."},{"src":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/screenshot-3.png?rev=3324351","caption":"You can also add and remove tags to people submitting you form."}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/wordpress.org\/plugins\/contact-form-7\/\">Contact Form 7 (CF7)<\/a> is a widely-used plugin by millions of WordPress websites for creating forms.<\/p>\n\n<p>The <strong>Form Integration for Action Network and Contact Form 7<\/strong> plugin provides a powerful bridge between your WordPress forms and ActionNetwork's organizing platform. Designed for nonprofits, advocacy groups, and political campaigns, this plugin automatically maps CF7 form fields to ActionNetwork's person data structure with intelligent field recognition and enhanced features.<\/p>\n\n<h4>Key Features<\/h4>\n\n<p>\ud83c\udfaf <strong>Smart Field Mapping<\/strong>: Automatically recognizes common form field patterns and maps them to ActionNetwork's standard fields<br \/>\n\ud83c\udf0d <strong>Auto Country Detection<\/strong>: Automatically detects user location when country isn't provided in forms<br \/>\n\ud83c\udff7\ufe0f <strong>Advanced Tagging<\/strong>: Add or remove tags from ActionNetwork contacts with simple configuration<br \/>\n\ud83d\udce7 <strong>Email Integration<\/strong>: Control ActionNetwork autoresponse emails and skip CF7 emails to prevent duplicates<br \/>\n\ud83d\udd12 <strong>Security First<\/strong>: WordPress.org compliant with proper nonces, sanitization, and permission checks<br \/>\n\ud83c\udfa8 <strong>Modern Admin UI<\/strong>: Clean, responsive interface with real-time URL validation<br \/>\n\ud83d\udcca <strong>Source Tracking<\/strong>: Automatic referrer data and custom source identification<br \/>\n\ud83d\udd04 <strong>Retry Logic<\/strong>: Built-in exponential backoff for reliable delivery<\/p>\n\n<p>Disclaimer: This plugin was created without any encouragement from ActionNetwork or CF7 developers.<\/p>\n\n<h4>How to Use<\/h4>\n\n<p>Setting up the integration is simple:<\/p>\n\n<ol>\n<li><strong>Create an ActionNetwork Action<\/strong>: Set up a Form, Petition, Event, Fundraising Page, or Advocacy Campaign in ActionNetwork<\/li>\n<li><strong>Get the API Endpoint<\/strong>: Copy the API Endpoint URL from the right sidebar when editing your action<\/li>\n<li><strong>Configure CF7 Form<\/strong>: In Contact Form 7, go to the 'ActionNetwork' tab and paste your URL<\/li>\n<li><strong>Smart Configuration<\/strong>: The plugin automatically activates when you add a URL - no separate activation needed<\/li>\n<li><strong>Optional Enhancements<\/strong>: Configure country detection, tags, source tracking, and autoresponse settings<\/li>\n<\/ol>\n\n<h4>Supported ActionNetwork Actions<\/h4>\n\n<p>The plugin automatically detects and properly formats data for:\n- <strong>Forms<\/strong> \u2192 <code>\/submissions<\/code>\n- <strong>Petitions<\/strong> \u2192 <code>\/signatures<\/code> \n- <strong>Events<\/strong> \u2192 <code>\/attendances<\/code>\n- <strong>Fundraising Pages<\/strong> \u2192 <code>\/donations<\/code>\n- <strong>Advocacy Campaigns<\/strong> \u2192 <code>\/outreaches<\/code><\/p>\n\n<h4>Smart Field Mapping<\/h4>\n\n<p>The plugin intelligently recognizes common CF7 field names and automatically maps them to ActionNetwork's person structure:<\/p>\n\n<p><strong>Email Variations<\/strong>:\n    your-email, <code>email<\/code>, <code>email-address<\/code> \u2192 Email address<\/p>\n\n<p><strong>Name Variations<\/strong>:\n    your-name, <code>first-name<\/code>, <code>firstname<\/code>, <code>given-name<\/code> \u2192 First name<br \/>\n    your-last-name, <code>last-name<\/code>, <code>lastname<\/code>, <code>family-name<\/code>, <code>surname<\/code> \u2192 Last name<\/p>\n\n<p><strong>Contact Information<\/strong>:\n    your-phone, <code>phone<\/code>, <code>phone-number<\/code>, <code>telephone<\/code>, <code>mobile<\/code> \u2192 Phone number<\/p>\n\n<p><strong>Address Components<\/strong>:\n    your-address, <code>address<\/code>, <code>street-address<\/code> \u2192 Street address<br \/>\n    your-city, <code>city<\/code>, <code>locality<\/code>, <code>town<\/code> \u2192 City<br \/>\n    your-state, <code>state<\/code>, <code>province<\/code>, <code>region<\/code> \u2192 State\/Region<br \/>\n    your-zip, <code>zip<\/code>, <code>zipcode<\/code>, <code>postal-code<\/code> \u2192 Postal code<br \/>\n    your-country, <code>country<\/code> \u2192 Country<\/p>\n\n<p><strong>Custom Fields<\/strong>: Any fields that don't match these patterns are automatically included as custom fields in ActionNetwork.<\/p>\n\n<h4>Advanced Features<\/h4>\n\n<p><strong>Country Auto-Detection<\/strong>: When enabled, automatically detects user's country using:\n- IP geolocation services\n- CloudFlare country headers\n- Browser language preferences<\/p>\n\n<p><strong>Tag Management<\/strong>: \n- Add tags to new contacts (comma-separated list)\n- Remove specific tags from contacts\n- Tag operations run automatically on form submission<\/p>\n\n<p><strong>Source Tracking<\/strong>:\n- Configurable source name for campaign tracking\n- Automatic referrer URL capture\n- Support for <code>?source=<\/code> URL parameters<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to external services to provide its functionality. Here are the third-party services used:<\/p>\n\n<h4>ActionNetwork API<\/h4>\n\n<p><strong>What it's used for<\/strong>: This plugin's primary function is to send form submission data to ActionNetwork's organizing platform for contact management and campaign actions.<\/p>\n\n<p><strong>What data is sent<\/strong>: All form field data submitted through Contact Form 7, including but not limited to names, email addresses, phone numbers, addresses, and any custom fields. This data is formatted according to ActionNetwork's person data structure.<\/p>\n\n<p><strong>When data is sent<\/strong>: Data is transmitted to ActionNetwork every time a Contact Form 7 form is submitted on forms where ActionNetwork integration is configured.<\/p>\n\n<p><strong>Service provider<\/strong>: ActionNetwork<br \/>\n<strong>Terms of service<\/strong>: https:\/\/actionnetwork.org\/terms<br \/>\n<strong>Privacy policy<\/strong>: https:\/\/actionnetwork.org\/privacy<\/p>\n\n<h4>IP Geolocation Service (ipapi.co)<\/h4>\n\n<p><strong>What it's used for<\/strong>: Automatic country detection when the country auto-detection feature is enabled and the user's country cannot be determined through other methods.<\/p>\n\n<p><strong>What data is sent<\/strong>: The user's IP address is sent to determine their country location.<\/p>\n\n<p><strong>When data is sent<\/strong>: Only when country auto-detection is enabled and a form is submitted without a country field or when other country detection methods fail.<\/p>\n\n<p><strong>Service provider<\/strong>: ipapi.co<br \/>\n<strong>Terms of service<\/strong>: https:\/\/ipapi.co\/terms\/<br \/>\n<strong>Privacy policy<\/strong>: https:\/\/ipapi.co\/privacy\/<\/p>\n\n<p><strong>Note<\/strong>: This service is only used as a fallback when other country detection methods (GeoIP functions, CloudFlare headers, browser language) are unavailable. You can disable country auto-detection in the plugin settings if you prefer not to use this service.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install <a href=\"https:\/\/wordpress.org\/plugins\/contact-form-7\/\">Contact Form 7<\/a> and activate it.<\/li>\n<li>Install \"Form Integration for Action Network and Contact Form 7\" by using the plugins dashboard or upload the entire <code>form-integration-for-action-network-and-contact-form-7<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>You will find the 'ActionNetwork' tab in the form configuration.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20it%20work%20with%20gutenberg%20and%20wordpress%206%2B%3F'><h3>Does it work with Gutenberg and WordPress 6+?<\/h3><\/dt>\n<dd><p>Yes! The plugin is fully compatible with modern WordPress (5.0+) and the Gutenberg editor.<\/p><\/dd>\n<dt id='how%20do%20i%20know%20if%20the%20integration%20is%20working%3F'><h3>How do I know if the integration is working?<\/h3><\/dt>\n<dd><p>After submitting a test form, check your ActionNetwork action for new submissions. The plugin automatically handles retries and error logging.<\/p><\/dd>\n<dt id='can%20i%20use%20this%20for%20non-actionnetwork%20webhooks%3F'><h3>Can I use this for non-ActionNetwork webhooks?<\/h3><\/dt>\n<dd><p>This plugin is specifically designed for ActionNetwork's API structure. For general webhooks, consider using <a href=\"https:\/\/github.com\/mariovalney\/cf7-to-zapier\">CF7 to Webhook<\/a>.<\/p><\/dd>\n<dt id='how%20does%20file%20upload%20work%3F'><h3>How does file upload work?<\/h3><\/dt>\n<dd><p>File uploads are automatically handled - files are copied to a secure directory and the URLs are sent to ActionNetwork before CF7 removes the temporary files.<\/p><\/dd>\n<dt id='can%20i%20customize%20field%20mapping%3F'><h3>Can I customize field mapping?<\/h3><\/dt>\n<dd><p>Yes! Use the <code>actionnetwork<\/code> option in your CF7 field tags:<br \/>\n    [text your-field actionnetwork:custom_field_name]<\/p><\/dd>\n<dt id='what%20happens%20to%20cf7%20emails%20when%20integration%20is%20active%3F'><h3>What happens to CF7 emails when integration is active?<\/h3><\/dt>\n<dd><p>By default, CF7 emails are automatically disabled when ActionNetwork integration is configured to prevent duplicate notifications. ActionNetwork autoresponse emails can be controlled separately.<\/p><\/dd>\n<dt id='how%20does%20country%20detection%20work%3F'><h3>How does country detection work?<\/h3><\/dt>\n<dd><p>The plugin tries multiple methods in order:\n1. GeoIP functions (if available)\n2. Free ipapi.co service\n3. CloudFlare country headers\n4. Browser language preferences<\/p><\/dd>\n<dt id='can%20i%20add%20multiple%20actionnetwork%20urls%3F'><h3>Can I add multiple ActionNetwork URLs?<\/h3><\/dt>\n<dd><p>Yes, you can add multiple URLs (one per line) to send the same form data to different ActionNetwork actions.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li><strong>Enhanced Integration<\/strong>: Complete rewrite with improved ActionNetwork API integration<\/li>\n<li><strong>Smart Field Mapping<\/strong>: Automatic recognition of 25+ common field name patterns<\/li>\n<li><strong>Country Auto-Detection<\/strong>: Multiple detection methods for automatic country assignment<\/li>\n<li><strong>Advanced Tagging<\/strong>: Add\/remove ActionNetwork tags with simple configuration<\/li>\n<li><strong>Security Improvements<\/strong>: WordPress.org compliant with proper nonces and sanitization<\/li>\n<li><strong>Modern Admin UI<\/strong>: Responsive interface with real-time URL validation<\/li>\n<li><strong>Simplified Activation<\/strong>: Automatic activation when ActionNetwork URL is provided<\/li>\n<li><strong>Source Tracking<\/strong>: Enhanced referrer data and campaign source tracking<\/li>\n<li><strong>Retry Logic<\/strong>: Exponential backoff for reliable API delivery<\/li>\n<li><strong>Email Control<\/strong>: Configurable ActionNetwork autoresponse and CF7 email management<\/li>\n<li><strong>Multi-URL Support<\/strong>: Send form data to multiple ActionNetwork actions<\/li>\n<li><strong>Error Handling<\/strong>: Comprehensive logging and graceful error recovery<\/li>\n<li><strong>Performance<\/strong>: Optimized data processing and reduced overhead<\/li>\n<\/ul>","raw_excerpt":"Seamlessly connect Contact Form 7 to ActionNetwork with smart field mapping, country detection, and comprehensive tagging support!","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/238129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=238129"}],"author":[{"embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/procomdev3"}],"wp:attachment":[{"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=238129"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=238129"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=238129"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=238129"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=238129"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bel.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=238129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}