Automatically log leads from Viewers to a Google Sheet. Every lead captured gets added as a new row - giving you a simple, searchable record of all your leads without any manual data entry.
This integration is available on all plans, including Free.
How It Works
When a lead is captured on your site, Viewers adds a new row to your Google Sheet with the contact’s email, name, company information, and any enrichment data. Your spreadsheet stays up to date automatically - perfect for tracking, reporting, or feeding other workflows.
What You’ll Need
- A Google account
- A Google Sheet to receive leads
- A Google Cloud Console project with the Sheets API enabled
- A service account with JSON credentials
This setup is more technical than other integrations, but it’s a one-time configuration. Once connected, it just works.
Setting Up Google Cloud Console
Step 1: Create or Select a Project
- Go to the Google Cloud Console
- Click the project dropdown at the top of the page
- Click New Project (or select an existing one)
- Give your project a name (e.g., “Viewers Integration”)
- Click Create
Step 2: Enable the Google Sheets API
- In your project, go to APIs & Services → Library
- Search for “Google Sheets API”
- Click Google Sheets API
- Click Enable
Step 3: Create a Service Account
- Go to APIs & Services → Credentials
- Click Create Credentials → Service Account
- Enter a name (e.g., “Viewers”)
- Click Create and Continue
- Skip the optional permissions steps and click Done
- Click on your new service account in the list
- Go to the Keys tab
- Click Add Key → Create new key
- Select JSON and click Create
- A JSON file will download - keep this safe, you’ll need it
The JSON file contains your credentials. Don’t share it publicly.
Step 4: Share Your Spreadsheet
- Open the JSON file you downloaded
- Find the
client_emailfield (looks likesomething@your-project.iam.gserviceaccount.com) - Open your Google Sheet
- Click Share
- Paste the service account email
- Give it Editor access
- Click Send (uncheck “Notify people” if prompted)
This gives Viewers permission to write to your spreadsheet.
Step 5: Get Your Spreadsheet ID
Your Spreadsheet ID is in the URL of your Google Sheet:
https://docs.google.com/spreadsheets/d/[SPREADSHEET_ID]/edit
Copy the long string between /d/ and /edit. That’s your Spreadsheet ID.
Setting Up the Integration
- Log in to your Viewers dashboard
- Go to Automations
- Find Google Sheets and click to configure
- Paste your Service Account JSON Credentials (the entire contents of the JSON file)
- Enter your Spreadsheet ID
- Enter a Spreadsheet Name (a friendly name to identify this sheet)
- Enter the Sheet/Tab Name (default is
Sheet1) - Select which contact types to sync (see below)
- Choose your sync type (see below)
- Save your settings
Configuration Options
Spreadsheet Name
A friendly name to help you identify this spreadsheet in your Viewers dashboard. This is just for your reference - it doesn’t affect the actual Google Sheet.
Sheet/Tab Name
The name of the specific sheet (tab) within your spreadsheet where leads should be added. If you haven’t renamed it, this is Sheet1.
Make sure this matches exactly - it’s case-sensitive.
Contact Types to Sync
Choose which modules should add rows to your spreadsheet:
- Chat - AI chat conversations
- Signup - Newsletter signups
- Coupon - Spin to Win / discount entries
- Feedback - Feedback submissions
- Share - Social share submissions
- Contact - Contact form submissions
- Custom - Custom module submissions
Select the modules that make sense for your tracking needs.
Sync Type
Control which leads get logged to Google Sheets:
All Valid Emails: Syncs all contacts with verified email addresses. Use this if you want every lead logged regardless of whether they have company data.
Enriched Leads Only: Only syncs contacts that have company/contact enrichment data (company name, phone, website, etc.). This filters out personal email addresses and leads without business information.
What Gets Synced
Each lead adds a new row with these columns:
| Column | Data |
|---|---|
| Name | Lead’s name |
| Lead’s email address | |
| Phone | Phone number (if enriched) |
| Company | Company name (if enriched) |
| Website | Company website (if enriched) |
| Module | Which module captured them |
| Date | When they were captured |
| Coworker Emails | Discovered coworker emails (if enriched) |
| OS | Operating system |
| Country | Country based on IP |
| Revenue | Company revenue (if enriched) |
| Employees | Employee count (if enriched) |
| Socials | Company social profiles (if enriched) |
| Conversion URL | Page where they converted |
| Entry URL | First page they visited |
| Pages Visited | Number of pages viewed |
Set up your spreadsheet with headers matching these columns, or let Viewers create them automatically on the first sync.
Best Practices
Create headers first: Set up your spreadsheet with column headers before enabling the integration. This keeps your data organized from the start.
Use a dedicated sheet: Create a new spreadsheet specifically for Viewers leads. Don’t mix it with other data - it makes filtering and analysis easier.
Don’t edit while syncing: Avoid restructuring your spreadsheet (moving columns, renaming sheets) while the integration is active. It can cause sync issues.
Back up periodically: Google Sheets has version history, but consider exporting a backup occasionally if this data is critical.
Use filters and pivot tables: Once you have data flowing in, use Google Sheets’ built-in tools to analyze your leads - filter by module, create charts, build pivot tables.
Troubleshooting
Leads not appearing in your spreadsheet?
- Verify the service account email has Editor access to the sheet
- Double-check the Spreadsheet ID is correct
- Make sure the Sheet/Tab Name matches exactly (case-sensitive)
- Confirm the JSON credentials are complete (the entire file contents)
“Permission denied” errors?
- The service account email must be shared on the spreadsheet with Editor access
- Make sure you’re using the correct Google Cloud project
Wrong sheet receiving data?
- Check the Sheet/Tab Name in your configuration
- Default is
Sheet1- if you renamed it, update the configuration
JSON credentials not working?
- Make sure you pasted the entire JSON file contents, not just part of it
- Generate a new key if needed (Keys tab in your service account)
Frequently Asked Questions
Can I sync to multiple spreadsheets? Create multiple Google Sheets automations, each pointing to a different spreadsheet. You might send Chat leads to one sheet and Newsletter signups to another.
Will it update existing rows? No. Each lead creates a new row. Use Google Sheets’ built-in features (filters, conditional formatting) to manage duplicates if needed.
How quickly do leads appear? Within seconds for “All Valid Emails.” For “Enriched Leads Only,” there may be a brief delay while enrichment completes.
Can I customize which columns are synced? Not currently. Viewers syncs a standard set of fields. Use Google Sheets formulas to transform or reorganize data after it arrives.
Is this available on the Free plan? Yes. The Google Sheets integration is available on all plans. However, “Enriched Leads Only” sync requires a PRO plan since enrichment is a PRO feature.
Why do I need a service account? Service accounts allow Viewers to write to your spreadsheet without requiring you to stay logged in. It’s Google’s recommended approach for server-to-server integrations.
Need Help?
If you have questions about connecting Viewers to Google Sheets, contact us.