{"id":182498,"date":"2024-01-16T07:59:50","date_gmt":"2024-01-16T07:59:50","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/integration-with-google-sheets-for-contact-form-7\/"},"modified":"2024-01-16T10:11:21","modified_gmt":"2024-01-16T10:11:21","slug":"cf7-google-sheets","status":"publish","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/cf7-google-sheets\/","author":15040999,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3","stable_tag":"trunk","tested":"6.4.8","requires":"3.6","requires_php":"","requires_plugins":null,"header_name":"Integration with Google Sheets for Contact Form 7","header_author":"Alex Agranov","header_description":"Integration between Contact Form 7 and Google Sheets.","assets_banners_color":"d6ecde","last_updated":"2024-01-16 10:11:21","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/alexagr","header_plugin_uri":"","header_author_uri":"","rating":3,"author_block_rating":0,"active_installs":300,"downloads":2295,"num_ratings":2,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":{"1":1,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3022217,"resolution":"128x128","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3022217,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3022217,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3022217,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3022217,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Connecting plugin to Google Sheets","2":"Configuring Google Sheets processor in Contact Form 7","3":"Integration with \"Contact Form 7 Database Addon - CFDB7\" plugin"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1152,150,25296,46506],"plugin_category":[],"plugin_contributors":[140152],"plugin_business_model":[],"class_list":["post-182498","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form-7","plugin_tags-google","plugin_tags-google-sheets","plugin_tags-sheets","plugin_contributors-alexagr","plugin_committers-alexagr"],"banners":{"banner":"https:\/\/ps.w.org\/cf7-google-sheets\/assets\/banner-772x250.png?rev=3022217","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cf7-google-sheets\/assets\/icon-128x128.png?rev=3022217","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cf7-google-sheets\/assets\/screenshot-1.png?rev=3022217","caption":"Connecting plugin to Google Sheets"},{"src":"https:\/\/ps.w.org\/cf7-google-sheets\/assets\/screenshot-2.png?rev=3022217","caption":"Configuring Google Sheets processor in Contact Form 7"},{"src":"https:\/\/ps.w.org\/cf7-google-sheets\/assets\/screenshot-3.png?rev=3022217","caption":"Integration with \"Contact Form 7 Database Addon - CFDB7\" plugin"}],"raw_content":"<!--section=description-->\n<p>This plugin provides integration between <a href=\"https:\/\/wordpress.org\/plugins\/contact-form-7\/\">Contact Form 7<\/a> and <a href=\"https:\/\/www.google.com\/sheets\/\">Google Sheets<\/a>.\nIt adds new processor to Contact Form 7 that enables sending of submitted forms to Google Sheets.<\/p>\n\n<h4>Connecting the Plugin to Google Sheets<\/h4>\n\n<p>After installing the plugin you must go to it's <strong>Settings<\/strong> screen and create application credentials needed to establish connection with Google Sheets. All instructions are provided in the <strong>Settings<\/strong> screen.<\/p>\n\n<p>After successfully creating application credentials and uploading them (i.e. completing steps 1 and 2), you will see <em>Client ID<\/em> and <em>Client Email<\/em> that represent your instance of \"Google Sheets for Contact Form 7\" plugin. You will need to share your sheets with <em>Client Email<\/em> (as <em>Editor<\/em> role) to grant \"Google Sheets for Contact Form 7\" plugin permissions to edit them.<\/p>\n\n<h4>Using the Plugin<\/h4>\n\n<p>After successfully connecting the plugin to Google Sheets, do the following to configure your Contact Form 7 to send data to Google Sheets on form submission.<\/p>\n\n<p><em>In Google Sheets<\/em><\/p>\n\n<ul>\n<li>Create a new Google Sheet<\/li>\n<li>Switch to the tab where you want to capture the data<\/li>\n<li><p>Determine <em>Sheet ID<\/em> and <em>Tab ID<\/em> from the sheet's URL that looks as follows: https:\/\/docs.google.com\/spreadsheets\/d\/<em>sheet-id<\/em>\/edit#gid=<em>tab-id<\/em><\/p>\n\n<p>For example, for URL https:\/\/docs.google.com\/spreadsheets\/d\/142XLjqRCpr7iWldfARhSS_GiFoy4l5RqZfSD6RHXM64\/edit#gid=0 <em>Sheet ID<\/em> is \"142XLjqRCpr7iWldfARhSS_GiFoy4l5RqZfSD6RHXM64\" and <em>Tab ID<\/em> is \"0\"<\/p><\/li>\n<li><p>Enter \"datetime\" in the the first column if you want to capture time and date of submission<\/p><\/li>\n<li>There is no need to enter names for other columns - they will be automatically added upon form submission<\/li>\n<li>Share the sheet with <em>Client Email<\/em> that represents your instance of \"Google Sheets for Contact Form 7\" plugin - as <em>Editor<\/em> role<\/li>\n<\/ul>\n\n<p><em>In Contact Form 7<\/em><\/p>\n\n<ul>\n<li>Open your contact form<\/li>\n<li>Switch to <strong>Google Sheets<\/strong> tab<\/li>\n<li>Configure <em>Sheet ID<\/em> and <em>Tab ID<\/em> and click <em>Save<\/em><\/li>\n<li>Submit a test form and verify that the data shows up in your Google Sheet<\/li>\n<\/ul>\n\n<h4>Automatic Header Generation<\/h4>\n\n<p>The plugin verifies spreadsheet header on each new form submission and adds new fields to it if needed. Note that it never deletes fields from the header - as this would also delete some submission data - though you can do it manually. You may also manually reorder columns as you wish.<\/p>\n\n<h4>Capturing Submission Metadata<\/h4>\n\n<p>In addition to the <em>datetime<\/em> and regular form fields, you may also capture Contact Form 7 <a href=\"https:\/\/contactform7.com\/special-mail-tags\">special mail-tags<\/a>. In order to do so, add <em>manually<\/em> corresponding headers to your spreadsheet. Remove square brackets and first underscore from the tag name, and replace remaining underscores with dashes. For example, add <em>remote-ip<\/em> header to capture <em>[_remote_ip]<\/em> mail-tag.<\/p>\n\n<h4>Integration with \"Contact Form 7 Database Addon - CFDB7\"<\/h4>\n\n<p>If you use <a href=\"https:\/\/wordpress.org\/plugins\/contact-form-cfdb7\/\">Contact Form 7 Database Addon - CFDB7<\/a> to save your submissions, you will also be able to resend already submitted forms to Google Sheets. This may be useful if something went wrong during initial form submission and\/or someone deleted data in Google Sheets by mistake. In order to do so, in CFDB7 plugin, choose your form, open specific submission and click <em>Send to Google Sheets<\/em> button.<\/p>\n\n<h4>Acknowledgements<\/h4>\n\n<p>Initial version of this plugin was inspired by <a href=\"https:\/\/wordpress.org\/plugins\/cf7-google-sheets-connector\/\">CF7 Google Sheets Connector<\/a> plugin.<\/p>\n\n<p>However it's implementation is quite different:<\/p>\n\n<ul>\n<li>it uses service principle for authentication with Google Sheets<\/li>\n<li>it has completely different and much more reliable sheets update logic<\/li>\n<li>it implements automatic header generation, to ensure that no submission data is lost<\/li>\n<li>it supports capturing submission meta-data<\/li>\n<li>it provides integration with CFDB7 plugin for forms re-submission<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload \"cf7-google-sheets\" to the \"\/wp-content\/plugins\/\" directory<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='why%20isn%27t%20the%20data%20sent%20to%20spreadsheet%3F%20contact%20form%207%20submit%20is%20just%20spinning.'><h3>Why isn't the data sent to spreadsheet? Contact Form 7 Submit is just Spinning.<\/h3><\/dt>\n<dd><p>Sometimes it can take a while of spinning before it goes through. But if the entries never show up in your Google Sheet use the following checklist:<\/p>\n\n<ul>\n<li>Check that plugin can access your sheet by entering it's <em>Sheet ID<\/em> in <strong>Settings<\/strong> screen and clicking <em>Test<\/em><\/li>\n<li>In Google Sheets processor configuration screen for your form:\n\n<ul>\n<li>Check that you entered correct <em>Sheet ID<\/em> and <em>Tab ID<\/em> (obtained from the sheet's URL - and NOT the Sheet\/Tab Name)<\/li>\n<\/ul><\/li>\n<li>Check <em>View Log<\/em> in plugin <strong>Settings<\/strong> screen for detailed error trace<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3<\/h4>\n\n<ul>\n<li>Refactor and clean-up the code for publishing to wordpress.org<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Refactor credentials upload for compliance with \"Plugin Check\"\n\n<ul>\n<li>After upgrade, please re-upload credentials.json in Settings screen<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Add integration with \"Contact Form 7 Database Addon - CFDB7\"<\/li>\n<li>Fix uploaded file name<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>","raw_excerpt":"Send your Contact Forms 7 submissions directly to your Google Sheets spreadsheet.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/182498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=182498"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/alexagr"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=182498"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=182498"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=182498"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=182498"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=182498"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=182498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}