{"id":1245,"date":"2025-10-24T13:10:45","date_gmt":"2025-10-24T11:10:45","guid":{"rendered":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/?post_type=lsvr_kba&#038;p=1245"},"modified":"2025-10-30T14:20:40","modified_gmt":"2025-10-30T13:20:40","slug":"google-sheets-synchronization-with-spreadsheets","status":"publish","type":"lsvr_kba","link":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/knowledge-base\/google-sheets-synchronization-with-spreadsheets\/","title":{"rendered":"Google Sheets \u2013 Synchronization with Spreadsheets"},"content":{"rendered":"<div class=\"tip\">\n<p><strong>Good to Know<\/strong><\/p>\n<p><a href=\"https:\/\/1.envato.market\/google-sheets-addon-chauffeur-taxi-booking-system\">Google Sheets<\/a> is a separate add-on that extends the capabilities of the Chauffeur Taxi Booking System for WordPress plugin. To start using the add-on, make sure you have the latest version of the Chauffeur Taxi Booking System installed on your WordPress site.<\/p>\n<\/div>\n<p>Google Sheets (Add-on) enables synchronization of bookings from the Chauffeur Taxi Booking System to a selected Google Sheets spreadsheet. Each new booking is appended as a new row, booking status changes are reflected, and deletions in the plugin remove the corresponding row in the sheet \u2014 giving you a faithful spreadsheet representation of your bookings for reporting, filtering, or sharing with your team.<\/p>\n<h2>Accessing Google Sheets (Add-on)<\/h2>\n<p>To configure synchronization, navigate to <mark>&#8216;Settings&#8217;<\/mark> -&gt; <mark>&#8216;Chauffeur Booking System: Google Sheets&#8217;<\/mark>.<\/p>\n<h2>What It Does<\/h2>\n<ul>\n<li><strong>Insert a row per booking<\/strong> \u2014 all selected booking fields are exported into dedicated columns.<\/li>\n<li><strong>Reflect status updates<\/strong> \u2014 when you change a booking\u2019s status in the plugin, the corresponding row is updated.<\/li>\n<li><strong>Reflect deletions<\/strong> \u2014 deleting a booking in Bookings menu removes its row from the sheet.<\/li>\n<li><strong>Custom column mapping &amp; order<\/strong> \u2014 choose which fields to export and in what order (this defines the column layout in the sheet).<\/li>\n<li><strong>Optional header row<\/strong> \u2014 if enabled, the first sync to an empty sheet inserts a header row with column labels.<\/li>\n<li><strong>Log Manager<\/strong> \u2014 built-in logs to verify sync health and quickly diagnose configuration issues.<\/li>\n<\/ul>\n<h2>Creating a New Synchronization<\/h2>\n<h2>Step 1. Enable Google Sheets API<\/h2>\n<ol>\n<li>Open <a href=\"https:\/\/console.cloud.google.com\/\" target=\"_blank\" rel=\"noopener\">Google Cloud Console<\/a> and select (or create) a project.<\/li>\n<li>Go to <mark>&#8216;APIs &amp; Services&#8217;<\/mark> -&gt; <mark>&#8216;Library&#8217;<\/mark>.<\/li>\n<li>Search for <strong>Google Sheets API<\/strong>.<\/li>\n<li>Open it and click <mark>&#8216;Enable&#8217;<\/mark>.<\/li>\n<\/ol>\n<h2>Step 2. Create Service Account &amp; JSON Private Key<\/h2>\n<ol>\n<li>In Google Cloud Console, go to <mark>&#8216;APIs &amp; Services&#8217;<\/mark> -&gt; <mark>&#8216;Credentials&#8217;<\/mark>.<\/li>\n<li>Click <mark>&#8216;+ Create Credentials&#8217;<\/mark> -&gt; <mark>&#8216;Service Account&#8217;<\/mark>.<\/li>\n<li>Fill <strong>Service Account Name<\/strong> (e.g., test-sheet) and click <mark>&#8216;Done&#8217;<\/mark>.<\/li>\n<li>In the Service Accounts list, copy the <strong>Service Account Email<\/strong>, e.g.: &#8216;test-sheet@your-project-id.iam.gserviceaccount.com&#8217;<\/li>\n<li>Open that service account, go to the <mark>&#8216;Keys&#8217;<\/mark> tab.<\/li>\n<li>Click <mark>&#8216;Add Key&#8217;<\/mark> -&gt; <mark>&#8216;Create new key&#8217;<\/mark> -&gt; select <mark>&#8216;JSON&#8217;<\/mark> -&gt; <mark>&#8216;Create&#8217;<\/mark>.<\/li>\n<li>Download and store the JSON key file securely.<\/li>\n<\/ol>\n<div class=\"tip\">\n<p><strong>Good to Know<\/strong><\/p>\n<p>The JSON Private Key grants access as the service account. Treat it like a password. If compromised, revoke it in Google Cloud (delete the key) and generate a new one, then update the plugin settings.<\/p>\n<\/div>\n<h2>Step 3. Create the Spreadsheet<\/h2>\n<ol>\n<li>Open <a href=\"https:\/\/drive.google.com\/\" target=\"_blank\" rel=\"noopener\">Google Drive<\/a>.<\/li>\n<li>Click <mark>&#8216;+ New&#8217;<\/mark> -&gt; <mark>&#8216;Google Sheets&#8217;<\/mark> -&gt; <mark>&#8216;Blank Spreadsheet&#8217;<\/mark>.<\/li>\n<li>When the sheet opens, click <mark>&#8216;Share&#8217;<\/mark> (top-right). If prompted, provide a file name.<\/li>\n<li>In <mark>&#8216;Add People and Groups&#8217;<\/mark>, paste the <strong>Service Account Email<\/strong> and click <mark>&#8216;Done&#8217;<\/mark>. Keep access as Editor so rows can be appended and updated.<\/li>\n<\/ol>\n<h2>Step 4. Find Spreadsheet IDs and Sheet Name<\/h2>\n<p>Use the browser URL of your sheet, for example:<\/p>\n<pre><code>https:\/\/docs.google.com\/spreadsheets\/d\/1zdciH0BSEmHYC3KA3W71KQ7wmxsrestfHKa2ojR7Sfs\/edit?gid=0#gid=0<\/code><\/pre>\n<ul>\n<li><strong>Spreadsheet ID<\/strong> = <code>1zdciH0BSEmHYC3KA3W71KQ7wmxsrestfHKa2ojR7Sfs<\/code><\/li>\n<li><strong>Sheet ID<\/strong> (gid) = <code>0<\/code><\/li>\n<li><strong>Sheet Name<\/strong> = the tab label at the bottom of the spreadsheet (usually <code>Sheet1<\/code> for a new file).<\/li>\n<\/ul>\n<h2>Step 5. WordPress Configuration<\/h2>\n<h2>&#8216;Main&#8217; Tab<\/h2>\n<h3>Adding Booking<\/h3>\n<p>Enable or disable automatic adding (and updating) of bookings in the sheet. When enabled, each new booking created in the Chauffeur Booking System will be sent to the connected Google Sheet, and any status updates will be reflected automatically.<\/p>\n<p>Disabling this option pauses synchronization \u2014 bookings created while it is disabled will not be added retroactively once synchronization is re-enabled. Existing data already stored in the sheet will remain unchanged.<\/p>\n<h3>Statuses Of Added Booking<\/h3>\n<p>Select which booking statuses should trigger synchronization. Only bookings with the selected statuses will be added or updated in the sheet. This allows you to exclude, for example, cancelled or failed bookings from being exported.<\/p>\n<h3>Service Account JSON Private Key<\/h3>\n<p>Open your downloaded JSON key file (see Step 2) in a text editor and copy the entire contents. Paste into <mark>&#8216;Service Account JSON Private Key&#8217;<\/mark> and save changes.<\/p>\n<h2>&#8216;Spreadsheet&#8217; -&gt; &#8216;Main&#8217; Tab<\/h2>\n<h3>Spreadsheet ID<\/h3>\n<p>Paste the value from the URL (see Step 4).<\/p>\n<h3>Sheet ID<\/h3>\n<p>Use the numeric gid from the URL (e.g., &#8216;0&#8217;).<\/p>\n<h3>Sheet Name<\/h3>\n<p>Provide the visible tab label from the bottom of the spreadsheet (e.g., &#8216;Sheet1&#8217;).<\/p>\n<h2>&#8216;Spreadsheet&#8217; -&gt; &#8216;Data&#8217; Tab<\/h2>\n<h3>Header<\/h3>\n<p>If enabled, when the first booking is synced to an empty sheet, the add-on will first insert a header row with column labels and then append the booking row. This is useful for new spreadsheets.<\/p>\n<h3>Fields<\/h3>\n<p>Select which booking fields to export. Arrange the order \u2014 the order defines the column layout in Google Sheets.<\/p>\n<h2>&#8216;Log Manager&#8217; Tab<\/h2>\n<p>Shows a record of recent synchronization events, including error messages (if any) to help diagnose configuration issues.<\/p>\n<div class=\"doc-version\">\n<p><strong>Summary<\/strong><\/p>\n<p>Document version: 1.0<br \/>\nLast updated: October 24, 2025<br \/>\nPlugin version: 8.9+<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Good to Know Google Sheets is a separate add-on that extends the capabilities of the Chauffeur Taxi Booking System for WordPress plugin. To start using the add-on, make sure you have the latest version of the Chauffeur Taxi Booking System installed on your WordPress site. Google Sheets (Add-on) enables synchronization of bookings from the Chauffeur [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"lsvr_kba_cat":[22],"lsvr_kba_tag":[],"_links":{"self":[{"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/lsvr_kba\/1245"}],"collection":[{"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/lsvr_kba"}],"about":[{"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/types\/lsvr_kba"}],"author":[{"embeddable":true,"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/comments?post=1245"}],"version-history":[{"count":17,"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/lsvr_kba\/1245\/revisions"}],"predecessor-version":[{"id":1282,"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/lsvr_kba\/1245\/revisions\/1282"}],"wp:attachment":[{"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/media?parent=1245"}],"wp:term":[{"taxonomy":"lsvr_kba_cat","embeddable":true,"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/lsvr_kba_cat?post=1245"},{"taxonomy":"lsvr_kba_tag","embeddable":true,"href":"https:\/\/quanticalabs.com\/docs\/chauffeur-booking-system\/wp-json\/wp\/v2\/lsvr_kba_tag?post=1245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}