{"id":352876,"date":"2026-09-04T16:11:47","date_gmt":"2026-09-04T16:11:47","guid":{"rendered":"https:\/\/uk.wordpress.org\/plugins\/integration-cf7-to-perfectum-crm\/"},"modified":"2026-09-04T16:11:18","modified_gmt":"2026-09-04T16:11:18","slug":"weblorem-sync-cf7-perfectum-crm","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/weblorem-sync-cf7-perfectum-crm\/","author":23432229,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.1.3","stable_tag":"4.1.3","tested":"7.1","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"WebLorem Sync for Contact Form 7 with Perfectum CRM","header_author":"Eugene Mazuryk <eugen.mazuryk@gmail.com>","header_description":"Synchronizes Contact Form 7 submissions with Perfectum CRM REST API. Includes admin panel for form configuration.","assets_banners_color":"","last_updated":"2026-09-04 16:11:18","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/mazuryk-e.weblorem.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"4.1.3":{"tag":"4.1.3","author":"mazuryk","date":"2026-09-04 16:11:18","revision":3681507}},"upgrade_notice":{"4.1.3":"<p>Recommended update for Plugin Check \/ security compliance and Ukrainian translation.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["4.1.3"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1556,1152,1150,597,279223],"plugin_category":[58],"plugin_contributors":[279224],"plugin_business_model":[],"class_list":["post-352876","plugin","type-plugin","status-publish","hentry","plugin_tags-api","plugin_tags-contact-form-7","plugin_tags-crm","plugin_tags-integration","plugin_tags-perfectum","plugin_category-user-management","plugin_contributors-mazuryk","plugin_committers-mazuryk"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/weblorem-sync-cf7-perfectum-crm.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This plugin captures form submissions from Contact Form 7 (<code>wpcf7_mail_sent<\/code> hook) and sends structured JSON data to Perfectum CRM API endpoints (e.g. <code>\/leads<\/code>).<\/p>\n\n<p><strong>Main features:<\/strong><\/p>\n\n<ul>\n<li><strong>Admin panel<\/strong> \u2014 map any CF7 form to CRM fields without writing code (Contact \u2192 Sync with Perfectum CRM)<\/li>\n<li><strong>Field mapping<\/strong> \u2014 CF7 input <code>name<\/code> attributes \u2192 CRM field keys<\/li>\n<li><strong>Custom fields<\/strong> \u2014 send values into <code>custom_fields[entity][id]<\/code><\/li>\n<li><strong>Static values<\/strong> \u2014 set required Lead Source ID and Status ID per form<\/li>\n<li><strong>display_name prefix<\/strong> \u2014 automatically append page title (<code>page_title<\/code>) to a prefix<\/li>\n<li><strong>Credentials<\/strong> \u2014 configure API URL\/Key in the admin UI, or override via <code>wp-config.php<\/code> constants<\/li>\n<li><strong>Legacy filter<\/strong> \u2014 still supports code-based mappers via <code>wl_perfectum_cf7_form_mappers<\/code><\/li>\n<li><strong>Logging<\/strong> \u2014 HTTP status and responses written to <code>debug.log<\/code> when <code>WP_DEBUG<\/code> is enabled<\/li>\n<li><strong>i18n<\/strong> \u2014 English UI with Ukrainian translation included<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>weblorem-sync-cf7-perfectum-crm<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress<\/li>\n<li>Ensure <strong>Contact Form 7<\/strong> is installed and active<\/li>\n<li>Go to <strong>Contact \u2192 Sync with Perfectum CRM<\/strong><\/li>\n<li>Enter API URL and API Key (or define constants in <code>wp-config.php<\/code>)<\/li>\n<li>Add a form, map CF7 fields to CRM fields, set Source\/Status IDs, and save<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20the%20api%20key%3F\"><h3>Where do I get the API Key?<\/h3><\/dt>\n<dd><p>In Perfectum CRM: <strong>Settings \u2192 System \u2192 API Keys<\/strong>.<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20credentials%20in%20wp-config.php%3F\"><h3>How do I set credentials in wp-config.php?<\/h3><\/dt>\n<dd><p>Add these constants (they override the admin fields):<\/p>\n\n<pre><code>define( 'PERFECTUM_API_URL', 'https:\/\/crm.yourdomain.com\/api' );\ndefine( 'PERFECTUM_API_KEY', 'your_actual_api_token_here' );\n<\/code><\/pre><\/dd>\n<dt id=\"what%20is%20the%20cf7%20field%20name%3F\"><h3>What is the CF7 field name?<\/h3><\/dt>\n<dd><p>It is the <code>name<\/code> attribute of the form control, e.g. <code>your-name<\/code>, <code>your-email<\/code>, <code>your-phone<\/code>. Special value <code>page_title<\/code> is also supported.<\/p><\/dd>\n<dt id=\"can%20i%20still%20use%20php%20mappers%3F\"><h3>Can I still use PHP mappers?<\/h3><\/dt>\n<dd><p>Yes. If a form is not configured (or not enabled) in the admin panel, the plugin falls back to the <code>wl_perfectum_cf7_form_mappers<\/code> filter for backwards compatibility.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.1.3<\/h4>\n\n<ul>\n<li>Plugin Check compliance (text domain matches slug, sanitization, escaping)<\/li>\n<li>Fixed readme Stable tag and Tested up to<\/li>\n<li>Ukrainian translation (PO\/MO)<\/li>\n<\/ul>\n\n<h4>4.0.2<\/h4>\n\n<ul>\n<li>Full i18n support<\/li>\n<li>Security and coding standards fixes<\/li>\n<\/ul>\n\n<h4>4.0.0<\/h4>\n\n<ul>\n<li>Admin UI for form and field mapping<\/li>\n<li>Custom fields, source\/status, display_name prefix<\/li>\n<\/ul>","raw_excerpt":"Synchronizes Contact Form 7 submissions with Perfectum CRM REST API. Admin panel for field mapping included.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/352876","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=352876"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mazuryk"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=352876"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=352876"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=352876"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=352876"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=352876"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=352876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}