Skip to content

Integrations

Connect external services to enhance your booking management workflow — Gmail for email, Google Sheets for data sync, and GST validation.

Gmail OAuth2 Setup

Send invoices, booking confirmations, and other emails directly from the application using your Gmail account.

Prerequisites

  • A Gmail account (personal or Google Workspace)
  • Gmail API enabled in your Google Cloud project
  • OAuth2 credentials configured on the backend

Connecting Your Gmail Account

  1. Navigate to Settings → Integrations → Gmail
  2. Click Connect Gmail Account
  3. You are redirected to Google's OAuth2 consent screen
  4. Sign in to your Gmail account
  5. Grant the requested permissions:
    • Send email on your behalf — required to send emails from the app
    • Read email metadata — used to confirm delivery status
  6. You are redirected back to the application
  7. A success message confirms the connection

INFO

The application requests the minimum required Gmail scopes. Your emails are never read or stored — only the sending capability is used.

Connection Status

Once connected, the integration page shows:

FieldDescription
StatusConnected / Disconnected
AccountConnected Gmail address
Connected OnDate the account was linked
Last UsedDate of the most recent email sent

Sending Emails via Gmail

With Gmail connected, you can send emails from various parts of the system:

  • Invoices — Send invoice PDFs to guests
  • Booking Confirmations — Send reservation confirmations
  • Payment Receipts — Send payment acknowledgments
  • Custom Emails — Send any email using your templates

Emails are sent using the Gmail API (not SMTP), ensuring reliable delivery and proper authentication.

Disconnecting Gmail

To disconnect your Gmail account:

  1. Navigate to Settings → Integrations → Gmail
  2. Click Disconnect
  3. Confirm the action

This revokes the OAuth2 tokens. You will need to reconnect to send emails again.

WARNING

Disconnecting Gmail means the system can no longer send emails on your behalf. Any automated email workflows will be paused until you reconnect.

Troubleshooting

IssueSolution
"Token expired" errorReconnect your Gmail account to refresh tokens
Emails not being sentVerify the Gmail account is still connected and active
"Insufficient permissions"Disconnect and reconnect, ensuring all permissions are granted
Emails landing in spamSet up SPF/DKIM records for your domain

Google Sheets Sync

Synchronize booking data with Google Sheets for external reporting, collaboration, or integration with other tools.

How It Works

The Google Sheets integration uses Google Apps Script to sync booking data between the application and a designated Google Sheet:

  1. An Apps Script is deployed as a web app linked to your Google Sheet
  2. The application sends booking events (create, update, delete) to the script endpoint
  3. The script writes booking data to the spreadsheet in real-time
  4. Changes are reflected in the Google Sheet within seconds

Setup

Step 1: Create the Google Sheet

  1. Create a new Google Sheet in your Google Drive
  2. Name it (e.g., "Hotel Bookings — 2026")
  3. The sheet will be populated with headers automatically on first sync

Step 2: Deploy the Apps Script

  1. Open the Google Sheet
  2. Go to Extensions → Apps Script
  3. Replace the default code with the provided Apps Script code (available in the application under Settings → Integrations → Google Sheets → Script Code)
  4. Click Deploy → New Deployment
  5. Set type to Web App
  6. Set "Execute as" to Me
  7. Set "Who has access" to Anyone (the script validates requests using an API key)
  8. Click Deploy and copy the web app URL

Step 3: Configure in the Application

  1. Navigate to Settings → Integrations → Google Sheets
  2. Enter the Google Sheet Web App URL (from the deployment)
  3. Enter the Sheet Key (a secret key used to authenticate requests)
  4. Click Save & Test
  5. A test booking entry is sent to verify the connection

Synced Data

The following booking fields are synced to the Google Sheet:

ColumnData
Booking CodeUnique booking reference
Guest NameGuest's full name
RoomRoom name/number
Room TypeRoom type name
Check-in DateScheduled check-in
Check-out DateScheduled check-out
StatusBooking status
Total AmountBooking total
Payment StatusPaid, Partial, Unpaid
Created AtBooking creation timestamp
Updated AtLast modification timestamp

Sync Events

EventTriggerSheet Action
Booking CreatedNew booking is savedNew row added
Booking UpdatedBooking details changeExisting row updated (matched by booking code)
Booking DeletedBooking is cancelled/deletedRow removed or marked as deleted

Validation & Permissions

Access to the Google Sheets integration is controlled by a combination of:

  • Sheet Key — a secret shared between the application and the Apps Script
  • RBAC Permissions — only users with the Integrations module permission can configure the connection

TIP

The Google Sheet can be shared with team members who don't have system access, giving them read-only visibility into bookings without needing a login.

GST Number Validation

Verify guest or vendor GST Identification Numbers (GSTIN) directly within the application.

How It Works

When a GSTIN is entered (on a guest profile, vendor profile, or invoice), the system validates it against the GST API:

  1. Enter a 15-character GSTIN (e.g., 27AABCU9603R1ZM)
  2. The system sends a validation request to the GST verification API
  3. Results are returned and displayed immediately

Validation Response

A successful validation returns:

FieldDescription
Legal NameRegistered business name
Trade NameBusiness trade name
StatusActive, Inactive, Cancelled
Registration DateDate of GST registration
Business TypeRegular, Composition, etc.
StateState of registration
AddressRegistered business address
Last Filing DateDate of last GST return filed

Auto-Fill

When validating a GSTIN on a guest or vendor profile, the system can auto-fill:

  • Company/business name from the legal name
  • State from the registration state
  • Address from the registered address

This reduces manual entry and ensures accuracy.

Where GSTIN Validation Is Used

  • Guest profiles — when adding a corporate guest's GST details
  • Vendor profiles — when setting up a new vendor
  • Invoices — validating the billed-to GSTIN before generating the invoice

Error Handling

ErrorMeaning
Invalid formatGSTIN doesn't match the 15-character format
Not foundGSTIN doesn't exist in the GST database
Inactive/CancelledGSTIN is no longer active
API unavailableGST verification service is temporarily down

WARNING

GST validation relies on external government APIs which may occasionally be slow or unavailable. Validation results are cached to reduce repeated lookups for the same GSTIN.

Integration Permissions

All integrations are controlled by the Integrations RBAC module:

PermissionAccess
ViewView integration status and configuration
CreateSet up new integration connections
UpdateModify integration settings
DeleteDisconnect integrations
ManageFull access to all integration operations

Released under the MIT License.