DEV Community

Rahul Sharma
Rahul Sharma

Posted on

CF7 to GetResponse Not Adding Contacts - What Is Actually Wrong

A reviewer left this on the WordPress plugin page for the CF7 GetResponse Extension:

"The UI is great on the backend but the plugin is not working and there are no logs for me to see why contacts are not being added. Please fix."

Another review from earlier said:

"Not working. Display error 'Invalid key' even key is valid."

Both describe the same underlying situation: the integration appears set up correctly, the form submits without error, and GetResponse receives nothing. No error message. No log entry. Just silence.

There are three reasons this happens with CF7 to GetResponse integrations, and none of them have anything to do with your API key being wrong.

Reason 1: GetResponse Deprecated Their API - The Plugin Still Uses the Old Endpoint

GetResponse updated their API from v2 to v3 several years ago and the v2 endpoints have been progressively deprecated. The CF7 GetResponse Extension plugin was built against the older API. If your API key is valid but the plugin keeps saying it is invalid, the request is reaching a deprecated or retired endpoint rather than GetResponse's current API.

GetResponse's current API base URL is:

https://api.getresponse.com/v3/
Enter fullscreen mode Exit fullscreen mode

Older integrations may be hitting:

https://api.getresponse.com/v2/
Enter fullscreen mode Exit fullscreen mode

Requests to v2 endpoints either return an error or are silently rejected depending on when GetResponse retired them. The "invalid key" error in this scenario is not about the key itself. It is about sending a valid key to an endpoint that no longer accepts it.

Reason 2: No Error Logging in the Plugin

The reviewer's complaint about no logs is a real architectural problem. When the plugin fires an API call to GetResponse and receives an error response, it has nowhere to surface that error to you. The form shows success. GetResponse gets nothing. The plugin does not write to the WordPress error log. You have no signal that anything went wrong.

To manually diagnose what GetResponse is actually receiving, enable WordPress debug logging temporarily:

// Add to wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Enter fullscreen mode Exit fullscreen mode

Then test the GetResponse API directly with your key to confirm it works independently of WordPress:

curl -X GET "https://api.getresponse.com/v3/campaigns" \
  -H "X-Auth-Token: api-key YOUR_GETRESPONSE_API_KEY"
Enter fullscreen mode Exit fullscreen mode

Note the header format: GetResponse API v3 uses X-Auth-Token: api-key YOUR_KEY, not Authorization: Bearer YOUR_KEY. If you see a list of campaigns in the response, your key is valid. If you see an authentication error, regenerate the key in GetResponse under Tools, API, API key.

Reason 3: Field Shortcode Placement Bug

One reviewer discovered that the plugin fails to detect form fields correctly when two CF7 shortcodes appear on the same line in the form template:

[text* your-name placeholder "Name"] [email* your-email placeholder "Email"]
Enter fullscreen mode Exit fullscreen mode

The plugin scans the form template to build the field mapping dropdown. When shortcodes share a line, the regex parsing misses the email field and it never appears in the mapper. You map your CF7 form to GetResponse but the email field is empty, so GetResponse rejects the contact creation silently because email is a required field.

The fix is simple: put each CF7 shortcode on its own line in the form editor:

[text* your-name placeholder "Name"]
[email* your-email placeholder "Email"]
[submit "Send"]
Enter fullscreen mode Exit fullscreen mode

After saving the form with this layout, go back to the plugin settings and re-map the fields. The email field should now appear in the dropdown.

The GetResponse API V3 Direct Integration

If the dedicated plugin continues to fail after these fixes, calling GetResponse's API directly removes the dependency on the plugin's implementation staying current.

GetResponse V3 API for adding a contact to a campaign:

POST https://api.getresponse.com/v3/contacts
X-Auth-Token: api-key YOUR_API_KEY
Content-Type: application/json

{
  "email": "jane@example.com",
  "name": "Jane Smith",
  "campaign": {
    "campaignId": "YOUR_CAMPAIGN_ID"
  }
}
Enter fullscreen mode Exit fullscreen mode

Get your campaign ID:

curl -X GET "https://api.getresponse.com/v3/campaigns" \
  -H "X-Auth-Token: api-key YOUR_API_KEY"
Enter fullscreen mode Exit fullscreen mode

The campaignId field appears in the response for each campaign.

Contact Form to API lets you configure this API call from the WordPress dashboard without PHP. You set the GetResponse endpoint, add the X-Auth-Token header with your key, and map your CF7 fields to the JSON body. Every submission calls GetResponse's v3 API directly. You see the response in the logs so you know immediately whether the contact was added.

Quick Checklist

If your CF7 to GetResponse integration is not adding contacts, go through these in order.

Test your API key directly against the v3 campaigns endpoint to confirm it is valid.

Check whether each CF7 shortcode is on its own line in the form template. If not, fix the line breaks and remap the fields.

Enable WP_DEBUG_LOG and check for any error after a test submission.

If the dedicated plugin is using an outdated API endpoint and you cannot update it, switch to a direct API call using Contact Form to API with GetResponse's v3 endpoint.

Top comments (0)