{"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":"2026-10-20T22:32:46","modified_gmt":"2026-10-20T22:32:46","slug":"form-integration-for-action-network-and-contact-form-7","status":"publish","type":"plugin","link":"https:\/\/fa.wordpress.org\/plugins\/form-integration-for-action-network-and-contact-form-7\/","author":23310507,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1.3","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":"2026-10-20 22:32:46","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":628,"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","revision":3324354},"1.0.4":{"tag":"1.0.4","author":"procomdev3","date":"2026-10-20 22:32:46","revision":3757527}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3757527,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3757527,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3757527,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3757527,"resolution":"1","location":"assets","locale":"","width":1291,"height":678},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3757527,"resolution":"2","location":"assets","locale":"","width":1260,"height":1372},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3757527,"resolution":"3","location":"assets","locale":"","width":1085,"height":457}},"screenshots":{"1":"Paste the ActionNetwork API Endpoint and you're set.","2":"Field mapping: the CF7 field names the plugin recognizes for each ActionNetwork field.","3":"Tags to add to or remove from each person."}},"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=3757527","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=3757527","icon_2x":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/icon-256x256.png?rev=3757527","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/screenshot-1.png?rev=3757527","caption":"Paste the ActionNetwork API Endpoint and you're set."},{"src":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/screenshot-2.png?rev=3757527","caption":"Field mapping: the CF7 field names the plugin recognizes for each ActionNetwork field."},{"src":"https:\/\/ps.w.org\/form-integration-for-action-network-and-contact-form-7\/assets\/screenshot-3.png?rev=3757527","caption":"Tags to add to or remove from each person."}],"raw_content":"<!--section=description-->\n<p>Paste an ActionNetwork API endpoint into a <a href=\"https:\/\/wordpress.org\/plugins\/contact-form-7\/\">Contact Form 7<\/a> form and every submission goes to that ActionNetwork form, petition, event, fundraising page or advocacy campaign.<\/p>\n\n<ul>\n<li>Common field names like <code>your-email<\/code>, <code>your-name<\/code> or <code>your-phone<\/code> are mapped to ActionNetwork's person fields. The ActionNetwork tab lists every name it recognizes. Anything else is sent as a custom field.<\/li>\n<li>Optionally fills in the visitor's country, and adds or removes tags.<\/li>\n<li>Sends a source name and the referring URL.<\/li>\n<li>Turns off CF7's own emails by default so people don't get two; ActionNetwork's autoresponse has its own switch.<\/li>\n<li>Retries failed requests.<\/li>\n<\/ul>\n\n<p>ActionNetwork and the CF7 developers had nothing to do with this plugin.<\/p>\n\n<h3>External Services<\/h3>\n\n<h4>ActionNetwork API<\/h4>\n\n<p>Every submission of a form that has ActionNetwork set up is sent to ActionNetwork: names, email addresses, phone numbers, addresses and any other fields in the form. This is the plugin's whole purpose.\nTerms: https:\/\/actionnetwork.org\/terms<br>\nPrivacy: https:\/\/actionnetwork.org\/privacy<\/p>\n\n<h4>ipapi.co<\/h4>\n\n<p>If country detection is on, the form has no country, and the server's GeoIP data can't tell, the visitor's IP address is sent to ipapi.co to look up their country. Turn off country detection to avoid this.\nTerms: https:\/\/ipapi.co\/terms\/<br>\nPrivacy: https:\/\/ipapi.co\/privacy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate <a href=\"https:\/\/wordpress.org\/plugins\/contact-form-7\/\">Contact Form 7<\/a>, then this plugin.<\/li>\n<li>In ActionNetwork, open your action and copy the API Endpoint URL from the right sidebar.<\/li>\n<li>In CF7, open your form's \"ActionNetwork\" tab and paste the URL. That turns the integration on.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20send%20a%20field%20to%20a%20specific%20actionnetwork%20field%3F\"><h3>Can I send a field to a specific ActionNetwork field?<\/h3><\/dt>\n<dd><p>Yes. Add the <code>actionnetwork<\/code> option to the form tag: <code>[text your-nickname actionnetwork:given_name]<\/code><\/p><\/dd>\n<dt id=\"can%20one%20form%20send%20to%20several%20actionnetwork%20actions%3F\"><h3>Can one form send to several ActionNetwork actions?<\/h3><\/dt>\n<dd><p>Yes. Put one URL per line.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20file%20uploads%3F\"><h3>What happens to file uploads?<\/h3><\/dt>\n<dd><p>The plugin copies uploaded files to a separate directory and sends their URLs to ActionNetwork.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>New: you can turn off automatic field mapping per form (it's on by default). With it off, only the exact ActionNetwork field names (<code>email<\/code>, <code>given_name<\/code>, <code>family_name<\/code>, <code>phone_number<\/code>, <code>address_lines<\/code>, <code>locality<\/code>, <code>region<\/code>, <code>postal_code<\/code>, <code>country<\/code>) are mapped, and every other field is sent as a custom field.<\/li>\n<li>The Field Mapping section in the ActionNetwork tab is easier to read. Its table of recognized field names is generated from the same list the plugin uses, so the two always match.<\/li>\n<li>Added <code>Requires at least<\/code> and <code>Requires PHP<\/code> to the plugin header. Tested up to WordPress 7.1.3.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix: the admin styles and scripts now load on every Contact Form 7 editor screen, including \"Add New\". The ActionNetwork tab used to show up unstyled there because asset loading needed a <code>post<\/code> query argument.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>New: works with the \"Contact Form 7 Multi-Step Forms\" (CF7MSM) plugin. Fields from earlier steps are merged into the submission sent to ActionNetwork (ports upstream 5.0.0).<\/li>\n<li>New filter <code>cfan_get_data_from_cf7msm_posted_data<\/code> to turn off CF7MSM data merging, or decide case by case.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: outbound requests use the \"safe\" HTTP API (<code>wp_safe_remote_post<\/code>\/<code>wp_safe_remote_get<\/code>), which blocks requests to private, loopback and link-local addresses (SSRF hardening; ports upstream 5.0.1 \/ CVE-2026-11395).<\/li>\n<li>Security: upload directories get cryptographically random names instead of guessable <code>uniqid()<\/code> ones (ports upstream 5.1.0).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Rewrote the ActionNetwork API integration.<\/li>\n<li>Automatic mapping for 25+ common field names.<\/li>\n<li>Country detection, with several fallback methods.<\/li>\n<li>Add and remove ActionNetwork tags.<\/li>\n<li>Nonces, sanitization and capability checks for WordPress.org.<\/li>\n<li>New admin screen with live URL validation.<\/li>\n<li>The integration turns on as soon as you add a URL.<\/li>\n<li>Better referrer and source tracking.<\/li>\n<li>Exponential backoff when requests fail.<\/li>\n<li>Settings for ActionNetwork's autoresponse and CF7's emails.<\/li>\n<li>Send one form to several ActionNetwork actions.<\/li>\n<li>More logging and better error handling.<\/li>\n<li>Faster data processing.<\/li>\n<\/ul>","raw_excerpt":"Send Contact Form 7 submissions to ActionNetwork, with automatic field mapping, country detection and tags.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/238129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=238129"}],"author":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/procomdev3"}],"wp:attachment":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=238129"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=238129"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=238129"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=238129"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=238129"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=238129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}