
Settings — database storage toggle, Google Sheets delivery (API or webhook mode), per-form routing, and field mapping with auto-detected CF7 fields.
ARPHost CF7 Submission Archive captures every Contact Form 7 submission and:
No Google API keys, OAuth, or service accounts required — the Sheets integration uses a free Google Apps Script Web App you deploy in about two minutes (companion script included in google-apps-script-example.js).
IP address and user-agent storage are off by default. Enable them in Settings only if your privacy policy covers it.
cf7dbgs_capture_submission — filter; return false to skip capturing a submissioncf7dbgs_store_fields — filter fields before DB storagecf7dbgs_webhook_payload — filter the JSON payload sent to the webhookcf7dbgs_webhook_args — filter wp_remote_post argscf7dbgs_after_store — action fired after a row is storedThis plugin connects to Google services to forward Contact Form 7 submissions to a Google Sheet. Both connections are off by default (Settings Send to Google Sheets) and use your own Google account/spreadsheet — no data passes through any ARPHost server.
When Delivery method is set to Google Sheets API, the plugin sends a submission’s mapped field values directly to the Google Sheets API (sheets.googleapis.com) using a Google Cloud service account you create and paste into Settings. Before that, it exchanges the service account’s key for a short-lived OAuth2 access token via Google’s token endpoint (oauth2.googleapis.com).
formTitle/formId), sent as a new row appended to the spreadsheet/tab you configured. Anti-spam/captcha tokens (reCAPTCHA, hCaptcha, Turnstile) are stripped before sending. For authentication, a signed JWT derived from your own service-account credentials is sent to obtain the access token — no data is sent to any third party you did not configure.When Delivery method is set to Webhook, the same submission payload (JSON) is POSTed instead to a Google Apps Script Web App URL that you deploy yourself from google-apps-script-example.js (bundled with this plugin). That script runs on Google’s infrastructure (script.google.com / script.googleusercontent.com) under your own Google account and appends the row to your sheet.
formTitle/formId plus form fields, captcha tokens stripped), sent as the POST body.