Most contact forms only email you. When the email fails — PHP mail switched off by the host, an SMTP password that expired, a notification filed as spam — the message is gone, and the visitor thinks you got it.
Letterkeep Contact Form saves each entry in its own database table first. Then it emails you, and records what happened: every entry is marked Sent to your mail server, Failed with the error your server gave, or Not sent. A failed notification can be resent from the entry, and the settings screen can send a test email and tells you whether the From address is on your site’s own domain.
[letterkeep id="…"].Name <address>. The subject and message can use {field:name}, {all_fields}, {form_title}, {page_url}, {site_title} and {admin_email}.The Import button on Letterkeep Forms reads your Contact Form 7 forms — Contact Form 7 does not need to be active. For each form it first shows what will come along and what will not, with a reason for every tag it leaves out. It imports the fields, the recipients, the subject and message, Mail (2) as the automatic reply, and your messages; if you say so, it also uses Contact Form 7’s reCAPTCHA or Turnstile keys. It lists the pages where a Contact Form 7 shortcode or block is used, so you know which ones to update. Nothing in Contact Form 7 or on your pages is changed.
Entries you collected with Flamingo or CFDB7 are not imported; they stay where they are.
Export forms as a file and import them on the next site — fields, email settings and messages included.
Letterkeep Pro is a paid add-on that sends each entry on to Mailchimp, Brevo, Kit, MailerLite, ActiveCampaign, HubSpot or a webhook, using API keys from your own accounts. When a connection stops accepting entries — a revoked key, an outage — Pro keeps them, emails you, and sends them again once it works. This plugin mentions it in five places: a Newsletter & CRM tab under Letterkeep Settings, a Send entries to your CRM button on the Entries screen once entries arrive, one line on new forms that you can hide, a link in the plugin’s row on the Plugins screen, and — only when a Contact Form 7 form you import sent contacts to Brevo — one line in that form’s import report. Everything in this plugin stays free.
Letterkeep Contact Form sends nothing to its makers: no usage data, no licence check, no telemetry.
It connects to a service only when the site owner turns on one of these CAPTCHA services under Letterkeep Settings Spam. Nothing is contacted while the setting is “None”, which is the default.
Cloudflare Turnstile. On pages that show a form, the visitor’s browser loads Turnstile’s script from challenges.cloudflare.com, and Turnstile runs its check in the browser. When the form is sent, the site’s server posts the resulting token, the site’s secret key and the visitor’s IP address to https://challenges.cloudflare.com/turnstile/v0/siteverify to learn whether the check passed. Terms: https://www.cloudflare.com/website-terms/ — Privacy: https://www.cloudflare.com/turnstile-privacy-policy/
hCaptcha. On pages that show a form, the visitor’s browser loads hCaptcha’s script from js.hcaptcha.com. When the form is sent, the site’s server posts the token, the secret key and the visitor’s IP address to https://api.hcaptcha.com/siteverify. Terms: https://www.hcaptcha.com/terms — Privacy: https://www.hcaptcha.com/privacy
Google reCAPTCHA v3. On pages that show a form, the visitor’s browser loads reCAPTCHA’s script from www.google.com. When the form is sent, the site’s server posts the token, the secret key and the visitor’s IP address to https://www.google.com/recaptcha/api/siteverify, which answers with a score. Terms: https://policies.google.com/terms — Privacy: https://policies.google.com/privacy
Like every request WordPress makes, these carry the site’s address and WordPress version in the User-Agent header. Each check has a 5-second time limit; if the service does not answer, the entry is saved anyway and marked as not checked.