Integrating with Google Sheets
Contents of this article
Overview
Visualping can add a new row to a Google Sheet every time a change is detected. There are two ways to set this up:
Direct connection (recommended): Connect your Google account to Visualping and choose a spreadsheet and tab. Visualping writes to the sheet for you, retries if a delivery fails, and keeps a consistent set of columns. No extension or webhook URL is needed.
Webhook: Install a Google Sheets webhook extension yourself, then paste its webhook URL into Visualping.
Note: Google Sheets notifications are available on Business plans. See the Notifications Overview for all notification methods and plan requirements.
Connect Google Sheets directly (recommended)
Visualping only has access to the spreadsheets you choose. It can't see any other files in your Google Drive.
Step 1:
Connect your Google account
Go to Account > Integrations and open Google Sheets. Click to connect a Google account, sign in, and grant Visualping permission when prompted. Visualping chooses the correct Google permissions automatically based on your role.
Step 2:
Choose a spreadsheet and tab
Create a spreadsheet destination by selecting the spreadsheet and the tab where you want new rows added.
Step 3:
Add the destination to your monitor
In your monitor's notification settings, click the Google Sheets icon and select the spreadsheet destination you created.
Step 4:
Test and save
Click Test to send a test alert and confirm that a row was added to the sheet. Then click Save.
Tip: You can send alerts from one monitor to up to 5 Google Sheets destinations. Different tabs in the same spreadsheet count as separate destinations.
Managing your Google connections
Go to Account > Integrations to add or remove Google accounts and spreadsheet destinations. Each connection shows a status:
Healthy: The connection is working.
Error: Visualping had trouble writing to the sheet. Check that the spreadsheet and tab still exist.
Revoked: Google access was removed. Reconnect the same Google account to restore it. Your spreadsheet destinations are kept.
Important: Clicking Disconnect permanently removes the Google account and every spreadsheet destination linked to it. Any monitors using those destinations will stop adding rows, and their owners are not notified. To fix a broken connection, reconnect instead of disconnecting.
Columns added to your sheet
With the direct connection, Visualping writes a header row with these 26 columns, in this order:
Column | Description |
job_id | Unique ID of the monitor |
workspace_id | ID of the workspace containing the monitor |
workspace_name | Name of the workspace |
url | The monitored URL |
description | Monitor name |
datetime | When the change was detected |
original | Link to the previous screenshot |
current | Link to the current screenshot |
preview | Link to a screenshot highlighting the changes |
html_previous | Link to the HTML of the previous version |
html_current | Link to the HTML of the current version |
change | Percentage of visual change |
view_changes | Link to view the change in the dashboard |
job_settings | Link to the monitor's settings |
visual_changes | Shareable link to the visual changes |
text_changes | Shareable link to the text changes |
added_text | Text that was added |
removed_text | Text that was removed |
advancedfiletype_original_previous | Link to the previous PDF file (PDF monitors only) |
advancedfiletype_original_current | Link to the current PDF file (PDF monitors only) |
labels | Labels assigned to the monitor |
keywords | Keywords matched by keyword alerts |
summarizer | AI summary of the change |
important | Whether the AI flagged the change as important |
good_feedback | Link to mark the alert as relevant |
bad_feedback | Link to mark the alert as not relevant |
If your monitor uses custom data extraction, the extracted fields are added as extra columns after these, in alphabetical order.
Note: Don't rename or reorder the header row. Visualping rewrites row 1 whenever it doesn't match the columns above exactly, so manual changes to the header won't be kept. To use your own layout, build it on a separate tab that references this one.
Connect Google Sheets using a webhook
If you prefer, you can send alerts to Google Sheets through a webhook extension instead. With this method, you install and manage the extension yourself, and it decides how the data is laid out in your sheet.
Step 1:
Install a Google Sheets webhook extension
Open your spreadsheet in Google Sheets and install a webhook extension from Extensions > Add-ons > Get add-ons. Follow the extension's instructions to create a webhook URL for the sheet, and copy the full URL.
Step 2:
Paste the webhook URL into Visualping
In your monitor's notification settings, click the Google Sheets icon and paste the URL into the Google Sheets webhook field. The destination switches on automatically once a valid URL is entered. If the URL looks incorrect or incomplete, Visualping shows a warning, so double-check that you copied the full URL.
Step 3:
Test and save
Click Test to send a test alert, confirm a row was added to the sheet, then click Save.
Note: Webhook alerts are sent once, with no retries. If the extension is unavailable when an alert is sent, that row is missed. The direct connection retries failed deliveries, which is why we recommend it. For the data sent in each alert, see How do I use Webhooks?
Google Sheets and the Visualping API
Google Sheets destinations can only be set up from the Visualping dashboard. They can't be added or changed through the Visualping API, the Visualping MCP, or the AI Assistant.
If you manage your monitors through the API, connect Google Sheets once in the dashboard. Rows keep arriving in your sheet as long as the destination stays connected, whatever other changes you make through the API.
Usage limits
Google Sheets has several storage limits in place, all of which apply to data added by Visualping, including:
10,000,000 cells per spreadsheet (across all tabs).
50,000 characters per cell.
With the direct connection, each alert adds a row with 26 columns (more if you use custom data extraction), so a spreadsheet can hold about 384,000 alerts. At one alert per hour, that's over 40 years of alerts.
To keep rows readable, the added_text and removed_text fields are shortened to 500 characters each, with ... added at the end. To see the full text of a change, use the view_changes link or the email alert, which is not shortened.
Frequently Asked Questions
Which method should I use?
We recommend the direct connection. It needs no extension, retries failed deliveries, and shows the health of the connection in Account > Integrations. Use a webhook only if you already rely on a webhook extension or need a custom sheet layout.
Are error alerts sent to Google Sheets?
No. Google Sheets is a log of detected changes, so error alerts are not added to it. Error alerts can still be sent to email, SMS, Slack, Teams, Discord, webhooks, and n8n. See How to get an alert if website errors.
My sheet stopped receiving new rows. What should I do?
For a direct connection, go to Account > Integrations and check the status. If it shows Revoked or Error, reconnect the same Google account.
For a webhook, check that the extension is still installed and the webhook URL hasn't changed.
Make sure the spreadsheet and tab still exist and haven't been renamed or deleted.
Confirm the Google Sheets destination is still switched on in the monitor's notification settings, then click Test.
Check that the monitor is active and has detected changes. Only changes that trigger an alert add a row.
Why did my header row change back?
With the direct connection, Visualping resets row 1 to its standard columns whenever it doesn't match exactly. Keep the header as is, and do any custom formatting or reordering on a separate tab.
I'm having issues, what can I do?
If you are running into technical issues, reach out to our Support team at support@visualping.io. Include the monitor name, the spreadsheet you're using, and any error messages so we can help faster.
