# Introduction

Check Sheet is a Google Sheets app that can send notifications when certain conditions in your spreadsheet are met.

You can use it for almost anything but a few examples are:

* Email a colleague when a task is assigned to them
* Post in a team Slack channel when a sales target is hit
* Send an alert to a Google Chat space when stock levels are low
* Email a client to remind them a payment is due tomorrow
* Update a Microsoft Teams channel when a form submission is received
* Email yourself when a stock price drops below a certain price

Get started by [installing it for free](/installing)


# Installing

You can install Check Sheet as an app available in all of your spreadsheets for free from the Google Workspace Marketplace:

[**Install Now**](https://workspace.google.com/marketplace/app/check_sheet_notifications/239755856136)


# Getting Started

Check Sheet allows you to create ["checks" ](/concepts/checks)for your spreadsheets that will monitor it for changes and if the ["condition"](/concepts/conditions) you define matches it will send you a notification.

Before you get started with creating your first check we recommened familiarising yourself with some of the key concepts in the app, starting first with ["checks"](/concepts/checks).

### Opening the App

To create your first check open the app from one of your spreadsheets by clicking on the Check Sheet logo in the sidebar on the right of your screen.

<div align="left"><figure><img src="https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FxcvTB1GajkE2yVC8zo0Z%2Fgetting-started-sidebar.jpg?alt=media&amp;token=076b7c05-b8ba-4e4a-97d7-3c3d623e7b4c" alt="" width="200"><figcaption></figcaption></figure></div>

### Can't find the app?

If you can't see the app in your sidebar you may need to refresh the spreadsheet you have open for it become visible.

If you can't see this sidebar at all you may need to click the arrow to make it visible in the very bottom right hand corner of your screen:<br>

<div align="left"><figure><img src="https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FsyrK0rPmwyocfDLosfzY%2Fgetting-started-show-sidebar.jpg?alt=media&amp;token=24a12ddd-0b8f-410d-b23b-15c2a4555abd" alt="" width="202"><figcaption></figcaption></figure></div>

{% hint style="info" %}
If you have a small screen or several other apps installed you may need to click the three horizontal dots button near the bottom of the sidebar to find our app:
{% endhint %}

<div align="left"><figure><img src="https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FhPo4hzgvYYb9egFIEjc2%2Fgetting-started-more-addons.jpg?alt=media&amp;token=9b3f899a-a011-4fd2-98ca-c1ce13790459" alt="" width="199"><figcaption></figcaption></figure></div>

<br>


# Checks

Everything in Check Sheet is based upon "checks", a check will monitor your spreadsheet for changes in the background and send you notifications if a certain condition is met.

You can create several checks and we will evaluate the state of your checks whenever:

* Your spreadsheet is updated
* A form that is linked to your spreadsheet is submitted
* Approximately once per hour

When creating a check you specify the range of cells that you want to monitor which can be a single cell such as `A1`or an entire column such as \`B:B\`.

In addition to the range you also specify a "condition" that we will evaluate against each of the cells in your range such as is the value equal to the text "Done" or is it greater than 5. If a cell in your monitored range is modified and matches your condition it may trigger a notification to be sent.

Check Sheet will remember the positions of the cells in your spreadsheet that match the condition of your check so you won't be sent a notification more than once about the same cell.

When configuring the [notifications](/concepts/notifications) for your check you can choose whether you want to be sent a notification every time a new value is found to match your condition or just the first time only.


# Conditions

You can create checks on your spreadsheet data based on a variety of conditions. The conditions you can use depends upon the type of data that you are checking.

## Numbers

For cells containing numbers you can define checks to see if they are:

* Valid Number
* Not Valid Number
* Empty
* Not Empty
* Equal To
* Not Equal To
* Greater Than
* Greater Than Or Equal To
* Less Than
* Less Than Or Equal To
* One Of ([CSV](https://en.wikipedia.org/wiki/Comma-separated_values) list of values to compare against)
* Not One Of ([CSV](https://en.wikipedia.org/wiki/Comma-separated_values) list of values to compare against)
* Matches Regex ([JavaScript RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) to test the value)
* Between (inclusive range of values as a [CSV](https://en.wikipedia.org/wiki/Comma-separated_values), e.g. `1,5` means between 1 and 5)

## Text

For cells containing text you can define checks to see if they are:

* Empty
* Not Empty
* Equal To
* Not Equal To
* Starts With
* Ends With
* Contains
* Does Not Contain
* One Of ([CSV](https://en.wikipedia.org/wiki/Comma-separated_values) list of values to compare against)
* Not One Of ([CSV](https://en.wikipedia.org/wiki/Comma-separated_values) list of values to compare against)
* Matches Regex ([JavaScript RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) to test the value)

## Dates

For cells containing dates you can define checks to see if they are:

* Yesterday
* Today
* Tomorrow
* Equal To
* Not Equal To
* Before
* After


# Values

The value(s) that your check condition is evaluated against can be one of three types as listed below.

It's important to note that when evaluating your checks we use the raw value from the spreadsheet, without any formatting applied. For example if you have a cell with a price in that you have formatted as a currency when entering the value you should not include this formatting, just the raw numeric value.

## Text

Any piece of text.

* **Example**: banana
* **Example**: multiple words

## Number

Any integer or decimal.

* **Example**: 5
* **Example**: 9.99

## Range

A reference to a a single cell or range of cells using [A1 notation](https://developers.google.com/sheets/api/guides/concepts#a1_notation) that is prefixed with an equals sign.

* **Example**: =A1
* **Example**: =C1:C10


# Notifications

You can set up your checks to send notifications to one or many [targets](#targets) via Email, Slack, Microsoft Teams, Discord or Google Chat. To add notifications to a check click the `Add` button under `Notifications` at the bottom of the create/edit check window.

If you are checking a range of cells you can choose whether to receive a notification just the first time a check matches or each time a new match is found. For example if you had a column with stock statuses you could either receive a notification just the first time a value goes from "In Stock" to "Out of Stock" or each time that occurs.

* [Targets](#targets)
  * [Email](#email)
  * [Slack](#slack)
  * [Microsoft Teams](#teams)
  * [Discord](#discord)
  * [Google Chat](#google-chat)
* [Values in Notifications](#values-in-notifications)
* [Dynamic Notifications Targets](#dynamic-notification-targets)
* [Customising Notifications](#customising-notifications)
  * [Subject](#subject)
  * [Content](#content)
  * [Variables](#variables)
  * [Formatting](#formatting)

## Targets

The target is where your notification will be sent to and can be one of the following. If you would to see another type of target supported please [contact us](mailto:support@checksheet.app?subject=Targets).

### Email

Notifications can be sent via email to yourself, your team or anyone you want by specifying the email address as the notification target.

To add multiple Email notifications add each email address on a separate line when typing into the text box by pressing the enter key.

### Slack

Notifications can be sent to a Slack channel by creating a "webhook" which you can do for free in a few minutes. You can [follow this guide](https://api.slack.com/messaging/webhooks#getting_started) to set up your webhook then you just need to copy the URL that Slack generates and use that as the notification target. It should look something like: `https://hooks.slack.com/services/...`

To add more than one Slack notification add each URL on a separate line when typing into the text box by pressing the enter key.

### Teams

Notifications can be sent to a Microsoft Teams channel via their simple and free to install Incoming Webhooks connector. You can [follow this guide](https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook#add-an-incoming-webhook-to-a-teams-channel) to set up your webhook then you just need to copy the URL that Microsoft generates and use that as the notification target.

To add more than one Microsoft Teams notification add each URL on a separate line when typing into the text box by pressing the enter key.

### Discord

Notifications can be sent to a Discord channel via their free to use webhook integration system. You can [follow this guide](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) to set up your webhook then you just need to copy the URL that Discord generates and use that as the notification target. It should look something like: `https://discordapp.com/api/webhooks/...`

To add more than one Discord notification add each URL on a separate line when typing into the text box by pressing the enter key.

### Google Chat

Notifications can be sent to a Google Chat space via their free to use webhook integration system. You can [follow this guide](https://developers.google.com/chat/how-tos/webhooks#step_1_register_the_incoming_webhooks) to set up your webhook then you just need to copy the URL that Google generates and use that as the notification target. It should look something like: `https://chat.googleapis.com/v1/spaces/...`

To add more than one Google Chat notification add each URL on a separate line when typing into the text box by pressing the enter key.

**Note**: At present only [Google Workspace](https://workspace.google.com/pricing.html) accounts (paid) can use webhooks with Google Chat.

## Values in Notifications

By default notifications will only include a reference to the [A1 notation](https://developers.google.com/sheets/api/guides/concepts#a1_notation) of the cell(s) that were found to match your check.

If you want to include matching values from your spreadsheet you can enable the `Include Values` setting for your notification as shown in the screenshot below.

<div align="left" data-full-width="false"><figure><img src="https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FJrzGMTb6rS4qiCMkf8hF%2Fimage.png?alt=media&amp;token=25e33b0d-f5cd-4e82-a27c-491fd151a0d3" alt="" width="533"><figcaption></figcaption></figure></div>

> ℹ️ This feature requires a [paid subscription](https://checksheet.app/pricing/)

## Dynamic Notification Targets

If you wish to set the notification target based on a value in your spreadsheet you can do so using dynamic notification targets.

Dynamic notification targets work by specifying the cell or range of cells that the target should be retrieved from using [A1 notation](https://developers.google.com/sheets/api/guides/concepts#a1_notation).

To set the notification target based on a single cell such as `C4` you would set your notification target to: `=C4`.

To set the notification target based on a range of cells such as a column you need to specify a range that matches the size of the range of your check. For example if your check was evaluating if any value in the range `A2:A` was greater than 10 you could set the notification target to retrieve the email addresses stored in column B by setting the target to `B2:B` which is a range of equivalent size. The corresponding cell will be selected and the notification sent to the value of that cell. Using the same example if a new match was found in `A10` then the notification would be sent to the value of the cell `B10`.

> ℹ️ This feature requires a [paid subscription](https://checksheet.app/pricing/)

## Customising Notifications

For some use cases you may want to customise the content of our notifications to include things such as the matching values or format them differently so they can be sent to third parties.

> ℹ️ This feature requires a [paid subscription](https://checksheet.app/pricing/)

### Subject

For Email notifications this is the subject of the Email, for Slack, Microsoft Teams, Discord or Google Chat this is the value used to summarise the message used in push notifications.

### Content

This is main content or body of the Email, Slack, Microsoft Teams, Discord or Google Chat message.

### Variables

A variable is a way to substitute data into the [subject](#subject) or [content](#content) of the notification. All variables are wrapped with curly brackets with the name of the variable in the middle like so: `{{ name }}`

When the notification is sent these variables will be replaced with their corresponding values.

The following variables are available, if there's something else you need please [contact us](mailto:support@checksheet.app?subject=Variables).

#### **Spreadsheet**

\
`{{ spreadsheet }}` - The name of the Spreadsheet\
`{{ sheet }}` - The name of the Sheet the Check is on\
`{{ url }}` - A link to the Spreadsheet

#### **Check**

\
`{{ check }}` - The name of your Check\
`{{ description }}` - A description of what your Check does\
`{{ range }}` - The range or cell your Check is on\
`{{ when }}` - What set of cells must match if the range contains multiple\
`{{ expected }}` - The expected value of your check\
`{{ condition }}` - The condition your check must meet

#### **Data**

\
`{{ time }}` - The time the match was found\
`{{ cell }}` - The [A1](https://developers.google.com/sheets/api/guides/concepts#a1_notation) position of the new match found\
`{{ value }}` - The value of the new match found\
`{{ row }}` - The values of the entire row the match was found in [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) format\
`{{ column:A }}` - The value of one of the columns in the matching row\
`{{ A1:A10 }}` - The value(s) of any cell or range provided using [A1 notation](https://developers.google.com/sheets/api/guides/concepts#a1_notation)

For example, to create a notification with the following content for a check that was monitoring when a stock price exceeded a threshold:

```liquid
A new match was found in A2 for Sell in Stocks at 17:44:30.

Name: GOOG
Target: 100
Price: 105
```

You would use variables like so, in this example the column `A` contains the name of the stocks:

```liquid
A new match was found in {{ cell }} for {{ check }} in {{ spreadsheet }} at {{ time }}.

Name: {{ column:A }}
Target: {{ expected }}
Price: {{ value }}
```

## Formatting

You can apply formatting to the content of your notifications such as highlighting key information in **bold**.

What formatting options are available depend on the type of notification you can sending:

### Email

You can use [Markdown](https://www.markdownguide.org/basic-syntax/) or [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML) to format the content of notification emails.

HTML:

```html
<p>
    <b>New Value:</b> {{ value }}
</p>

<p>
    <a href="{{ url }}">View Spreadsheet</a>
</p>
```

Markdown:

```markdown
**New Value:** {{ value }}

[View Spreadsheet]({{ url }})
```

### Slack

You can use a [subset of Markdown](https://api.slack.com/reference/surfaces/formatting#visual-styles) that Slack supports to format the content of notification messages.

### Microsoft Teams

You can use [Markdown](https://support.microsoft.com/en-us/office/use-markdown-formatting-in-teams-4d10bd65-55e2-4b2d-a1f3-2bebdcd2c772#ID0EBBD=Desktop) to format the content of notification messages.

### Discord

You can use [Markdown](https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline-) to format the content of notification messages.

### Google Chat

You can use [basic HTML](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting) to format the content of notification messages.


# Creating a Check

To create your first check open the Check Sheet app from one your spreadsheets as described in [Getting Started](/getting-started).

<div align="left"><figure><img src="https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FoUz2R52QATXqs9SdzBC0%2Fimage.png?alt=media&amp;token=fd3569e7-ab56-4fca-a743-c46ca0d1cc18" alt="" width="200"><figcaption></figcaption></figure></div>

You can then edit one of the example checks we've provided or click the green `Add Check` at the bottom of the app. If you have already created a check in this spreadsheet you'll see a green `Add` button at the top of your list of checks.

You'll then be presented with a blank form as shown below that allows you to enter the details of your check.

A check is made up of the following properties:

* **Name**: The name of your check, this will be shown in notifications
* **Sheet**: The sheet which contains the data you want to check
* **Range**: The single cell or range of multiple cells you want to check, specified in [A1 notation](https://developers.google.com/sheets/api/guides/concepts#a1_notation)
* **When**: The set of cells that must match if the range contains multiple, not visible for single cell ranges
* **Is**: The condition [condition](#conditions) that must be met for your check
* **Value**: The value you expect your condition to match against, it can be one of these [types](#values) and isn't visible for some conditions

A check can have many [notifications](#notifications) which have the following properties:

* **For**: For checks that contain a range of multiple cells this controls whether a notification will be sent for just the first match this is found or for every new match.
* **Send**: The [type of notification](#notifications) to send
* **Target**: The location the notification should be sent to, it can either be a static value such as an email address or a [dynamic target](#dynamic-notification-targets) i.e. a value retrieved from your spreadsheet


# Editing a Check

To edit a check, open Check Sheet and you should see a list of your checks.

Click the yellow `Edit` button on the check you want to edit and the check details will appear, don’t forget to hit save when you are done.


# Deleting a Check

To delete a check open Check Sheet and you should see a list of your checks.

Click the yellow `Edit` button on the check you want to delete and then the red `Delete` button at the bottom of the screen.


# Pausing a Check

If you wish to temporarily turn off a check without deleting it, open the check for editing as described in [Editing a Check](/workflows/editing-a-check)  and use the Paused checkbox to stop Check Sheet from monitoring this check.


# FAQ

Here are some frequently asked questions about Check Sheet and Google Sheets.

### Getting Started

* [How do I install Check Sheet?](/faq/getting-started/how-do-i-install-check-sheet)
* [How do I see how many checks I have?](/faq/getting-started/how-do-i-see-how-many-checks-i-have)

### Account and Billing

* [How do I upgrade my subscription?](/faq/account-and-billing/how-do-i-upgrade-my-subscription)
* [How do I update my payment method?](/faq/account-and-billing/how-do-i-update-my-payment-method)
* [How can I resubscribe to email notifications?](https://checksheet.app/how-can-i-resubscribe-to-email-notifications/)
* [How do I cancel my subscription](/faq/account-and-billing/how-do-i-cancel-my-subscription)
* [How do I delete my account?](/faq/account-and-billing/how-do-i-delete-my-account)

### Checks

* [How do I send a notification when a new row is added?](/faq/checks/how-do-i-send-a-notification-when-a-new-row-is-added)
* [Why can't I see my checks?](/faq/checks/why-cant-i-see-my-checks)
* [Why doesn't my check match the value I see in Google Sheets?](/faq/checks/why-doesnt-my-check-match-the-value-i-see-in-google-sheets)

### Notifications

* [Can Google Sheets send notifications to other users?](/faq/notifications/can-google-sheets-send-notifications-to-other-users)
* [How do I send notifications to email addresses listed in my sheet?](/faq/notifications/how-do-i-send-notifications-to-email-addresses-listed-in-my-sheet)
* [Why are my notifications not being sent?](/faq/notifications/why-are-my-notifications-not-being-sent)
* [Can I customise Slack, Discord, Teams, or Google Chat notifications?](/faq/notifications/can-i-customise-slack-discord-teams-or-google-chat-notifications)

### Spreadsheet Changes

* [Why were notifications sent after I sorted my sheet?](/faq/spreadsheet-changes/why-did-check-sheet-send-notifications-after-sorting-my-sheet)
* [Why were notifications sent after I added or deleted rows?](/faq/spreadsheet-changes/why-were-notifications-sent-after-i-added-or-deleted-rows)


# Getting Started


# How do I install Check Sheet?

You can install Check Sheet as an app for Google Sheets for free from the [Google Workspace marketplace](https://workspace.google.com/marketplace/app/check_sheet_notifications/239755856136).

You can install the app for your account or if you are an admin of a Google Workspace you can install it for your entire organisation or “domain”.

Once you have installed the app it should appear in the sidebar on the right hand side of all of your spreadsheets.

<div align="left"><figure><img src="https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FM0exjTv2ioyJOV3R5r57%2Fimage.png?alt=media&amp;token=a68de290-f32a-4f3e-8762-2d2ba029f477" alt="" width="413"><figcaption></figcaption></figure></div>

For more information you can check out our [getting started guide](https://checksheet.app/getting-started/).


# How do I see how many checks I have?

You can see how many checks you have within the Check Sheet app in one of your spreadsheets.

1. Open the Settings by clicking the three vertical dots at the top right of the app.\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FzydUJsHLUw0DAEvqToSH%2Fimage.png?alt=media\&token=11fda584-0822-4433-af3a-f6238a45cde1)

2. Look at the `Usage` section where you can see how many checks you have in total and in how many different spreadsheets those checks reside.\
   \ <img src="https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2Fn5ZubnKQx8Fvec6fQyp8%2Fimage.png?alt=media&amp;token=71bbfc4f-f55a-4db0-bc00-9da053b5400a" alt="" data-size="original">

3. If you click the `View` button next to the count of spreadsheets you can see a breakdown of how many checks you have in each spreadsheet.\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FMtT1mEjRH16oXmAZsklP%2Fimage.png?alt=media\&token=0b9cae5f-e628-4319-8bb9-33975d48213f)


# Account and Billing


# How do I upgrade my subscription?

You can upgrade to one of our [paid subscription plans](https://checksheet.app/pricing/) from within the Check Sheet app in one of your spreadsheets.

1. Open the Settings by clicking the three vertical dots at the top right of the app.\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2F9FQlvdEQbiKRoFQlWDSq%2Fimage.png?alt=media\&token=461997f8-98cd-46f0-835f-8324787d01fc)<br>
2. Click the `Upgrade` button button next to your current plan.\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2F0RXKOIdYPUgKcW5zYS6F%2Fimage.png?alt=media\&token=843df441-310c-4306-ac08-3cee6bd9a9f0)<br>
3. A popup window should open showing the pricing and allowing you to complete your upgrade.<br>
4. If the popup window doesn’t open check your browser hasn’t blocked it, this will usually be indicated at the top of your browser window.


# How do I update my payment method?

You can update your payment method from within the Check Sheet app in one of your spreadsheets.

1. Open the Settings by clicking the three vertical dots at the top right of the app.\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FzydUJsHLUw0DAEvqToSH%2Fimage.png?alt=media\&token=11fda584-0822-4433-af3a-f6238a45cde1)\ <br>

2. Click the `Update` button next to your current payment method.\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FcitUNap8Y9SaYY6xCEzQ%2Fimage.png?alt=media\&token=4286225b-b147-4f73-9559-d4b9783c905f)

3. A new tab should open allowing you to update your payment method securely.\ <br>

4. If the new tab doesn’t open check your browser hasn’t blocked it, this will usually be indicated at the top of your browser window.


# How do I cancel my subscription

If you wish to cancel a paid Check Sheet subscription you can do this from within the app.<br>

1. Open the Settings by clicking the three vertical dots at the top right of the app.\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2Fbl8QjmurSuWGgUbBjB4R%2Fimage.png?alt=media\&token=8ed66e34-f9ae-47d9-81e0-a20cea50ebaa)<br>
2. Click the red `Cancel` button in the Subscription section\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FTLad3AIvpxAJAeV8faRu%2Fimage.png?alt=media\&token=627050e6-bff1-4862-8226-33c9c9bd3d87)<br>
3. Optionally provide us with some feedback on why you are cancelling then click the `Cancel Subscription` button at the bottom of the screen\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FHPDN38z0ReoIMIYBgXly%2Fimage.png?alt=media\&token=3a81e233-214f-4a81-8d3e-bd1ecc0bbe04)<br>
4. This should trigger a popup window where you can confirm your cancellation\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2Fee7FPGtHKoydfHgXWQe7%2Fimage.png?alt=media\&token=69ee8a6d-e7d9-4189-bc46-d3522bf7516e)
5. If you have any issues with this process please email us at <support@checksheet.app> and we can help you&#x20;


# How do I delete my account?

If you wish to completely delete your Check Sheet account you can do so from within the app.

1. ⚠️ If you have a paid subscription that you also wish to cancel you should do this *before* deleting your account: [How do I cancel my subscription](/faq/account-and-billing/how-do-i-cancel-my-subscription)<br>
2. Open the Settings by clicking the three vertical dots at the top right of the app.\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2Fbl8QjmurSuWGgUbBjB4R%2Fimage.png?alt=media\&token=8ed66e34-f9ae-47d9-81e0-a20cea50ebaa)<br>
3. Scroll down to the bottom of the screen and click the `Delete Account` button\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FxCo8VfWuz4ZNgCD6mKAF%2Fimage.png?alt=media\&token=18096ba9-59af-44c5-b03b-94fe0f602ae8)<br>
4. Confirm you want to delete your account, **this process cannot be reversed**\
   \
   ![](https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FLlgTLOIokILrBHErvkyD%2Fimage.png?alt=media\&token=2389b59e-b9e8-485f-96a7-e7f37978c95a)<br>
5. If you have any issues with this process you can email us at <support@checksheet.app>


# Checks


# How do I send a notification when a new row is added?

You can create a check that monitors a row, column, or range of cells and sends a notification when a new value matches your condition.

For example, if new records are added to your sheet and column `A` is filled in for each new record, you could create a check on `A2:A` with the condition `Not Empty`. When a new row is added and the cell in column `A` is filled in, Check Sheet can send a notification.

If your sheet is populated by a Google Form, Check Sheet will also evaluate your checks when the linked form is submitted.

## Recommended setup

Where possible, add new rows at the bottom of your sheet.

Avoid inserting new rows in the middle of data that Check Sheet is already monitoring, because this can shift existing rows and may cause duplicate notifications. You can read more about this in [Why were notifications sent after I added or deleted rows?](/faq/spreadsheet-changes/why-were-notifications-sent-after-i-added-or-deleted-rows).

If you want the newest rows to appear first, add new rows at the bottom and use a Google Sheets filter view to display the data in the order you need.

## Sending the notification to someone listed in the row

If the email address or webhook URL you want to notify is stored in the same row, use a dynamic notification target.

For example, if your check monitors `A2:A` and the email address to notify is in column `B`, you can set the notification target to `=B2:B`.

You can read more in [Dynamic Notification Targets](/concepts/notifications#dynamic-notification-targets).


# Why can't I see my checks?

If your checks are not visible in the Check Sheet app, first refresh the spreadsheet and open the app again from the Google Sheets sidebar.

Checks are saved against the spreadsheet they were created in, so also make sure you are opening Check Sheet from the same spreadsheet and Google account that you used when creating the checks.

## Large numbers of checks

If a spreadsheet has a very large number of checks, the list of checks may take longer to load or may not display correctly.

For most spreadsheets, it is better to use fewer checks that monitor larger ranges instead of creating many separate checks for similar conditions.

For example, instead of creating one check for each person or each row, you may be able to create one check that monitors a whole column or range.

You can read more about checks in [Checks](/concepts/checks), and you can view current account limits in [Limits](/limits).

## If the checks still do not appear

If you still cannot see your checks, please email <support@checksheet.app> with:

* Your Google account email
* A link to the affected spreadsheet
* The name of one of the missing checks, if you know it
* Any relevant screenshots


# Why doesn't my check match the value I see in Google Sheets?

Check Sheet evaluates the raw value from your spreadsheet, not the formatted value displayed in Google Sheets.

Formatting can change how a value looks without changing the value itself. This means the value you see in the sheet may not be the exact value Check Sheet is checking.

For example:

* A cell formatted as currency may display as `$10.00`, but the raw value may be `10`.
* A percentage may display as `50%`, but the raw value may be `0.5`.
* A date may display in one format in the sheet, but still be stored as a date value by Google Sheets.

When configuring your check, use the underlying value rather than the formatted display text.

You can read more in [Values](/concepts/values) and [Conditions](/concepts/conditions).

## Notifications use the displayed value

This only affects how Check Sheet evaluates whether a cell matches your check.

When Check Sheet sends a notification, it will use the displayed value from Google Sheets. For example, if a matching cell is formatted as currency and displays as `$10.00`, the notification will show `$10.00`.

## Conditional formatting

Conditional formatting changes how a cell looks. It does not usually change the value in the cell.

If a check is not matching as expected, review the actual cell value and the condition configured in Check Sheet rather than relying only on the colour or visual formatting in the sheet.


# Notifications


# Can Google Sheets send notifications to other users?

There are a few different types of notifications for Google Sheets that you can set up, here we’ll be focussing on [notifications for when your spreadsheet is updated](https://checksheet.app/blog/google-sheets-notifications/#notifications-when-a-spreadsheet-is-updated).

The built-in notification functionality **only allows sending notifications to yourself**, not to other users.

To send notifications to other users you **need to use an app like Check Sheet** or write some code using [Apps Script](https://developers.google.com/apps-script).

Using [Check Sheet](https://workspace.google.com/marketplace/app/check_sheet_notifications/239755856136) you can send notifications to multiple email addresses, Slack channels, Microsoft Teams channels, Discord channels or Google Chat spaces based on a variety of [conditions](https://documentation.checksheet.app/concepts/conditions).

You can [Install Check Sheet](https://workspace.google.com/marketplace/app/check_sheet_notifications/239755856136) for free from the Google Workspace Marketplace and learn more about how it works by reading [our documentation](https://documentation.checksheet.app/concepts/checks).

<div align="left"><figure><img src="https://712714488-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4mpOoN0YpNisRWcKkntB%2Fuploads%2FBGmUBpUoA19J4VZ6rT7m%2Fimage.png?alt=media&amp;token=a4656333-d67c-4593-837f-8547c397da00" alt="" width="450"><figcaption></figcaption></figure></div>


# How do I send notifications to email addresses listed in my sheet?

You can send notifications to email addresses listed in your spreadsheet by using dynamic notification targets.

Dynamic notification targets let Check Sheet choose the notification target from a cell or range in your sheet.

For example, if your check monitors `A2:A` and the email addresses are in column `B`, set the notification target to `=B2:B`.

When a new match is found in `A10`, Check Sheet will use the corresponding cell in `B10` as the notification target.

The target range must match the size of the range used by your check. For example:

* Check range: `A2:A`
* Dynamic notification target: `=B2:B`

You can read the full setup guide in [Dynamic Notification Targets](/concepts/notifications#dynamic-notification-targets).

> ℹ️ This feature requires a [paid subscription](https://checksheet.app/pricing/)


# Why are my notifications not being sent?

If your notifications are not being sent, check the following common causes.

## The check condition does not match

Check Sheet only sends a notification when the value in your spreadsheet matches the condition you configured.

Check the range, condition, and expected value in your check. You can read more in [Conditions](/concepts/conditions) and [Values](/concepts/values).

## The value looks different from its raw value

Check Sheet evaluates the raw value from the spreadsheet, not the formatted value you see in Google Sheets.

For example, a cell formatted as currency may display as `$10.00`, but the raw value may be `10`.

You can read more in [Why doesn't my check match the value I see in Google Sheets?](/faq/checks/why-doesnt-my-check-match-the-value-i-see-in-google-sheets).

## The notification is only set to send once

When checking a range of cells, you can choose whether to receive a notification only the first time a check matches or each time a new match is found.

If Check Sheet has already notified you about a matching cell, it will not send the same notification again unless the check is configured to notify you about new matches.

You can read more in [Notifications](/concepts/notifications).

## The check is paused or has reached a limit

Make sure the check is not paused, and check whether your account has reached its monthly notification limit.

You can read more in [Pausing a Check](/workflows/pausing-a-check) and [Limits](/limits).

## The notification target is incorrect

Check the email address, webhook URL, or dynamic notification target used by your notification.

If you are using Slack, Microsoft Teams, Discord, or Google Chat, make sure the webhook URL is still valid and has not been deleted or regenerated in that service.

If you are using a dynamic notification target, make sure the target range matches the size of the check range. You can read more in [Dynamic Notification Targets](/concepts/notifications#dynamic-notification-targets).

## If you still need help

Please email <support@checksheet.app> with:

* Your Google account email
* A link to the affected spreadsheet
* The affected check name
* The notification target type
* Any relevant screenshots


# Can I customise Slack, Discord, Teams, or Google Chat notifications?

You can customise the subject and content of notifications sent to Slack, Microsoft Teams, Discord, and Google Chat.

Custom notification content can include values from your spreadsheet using variables such as `{{ cell }}`, `{{ value }}`, `{{ row }}`, or `{{ column:A }}`.

You can read more in [Customising Notifications](/concepts/notifications#customising-notifications).

## Formatting

Each notification target supports different formatting:

* Slack supports a subset of Markdown.
* Microsoft Teams supports Markdown.
* Discord supports Markdown.
* Google Chat supports basic HTML.

You can read more in [Formatting](/concepts/notifications#formatting).

## Webhook payloads

Check Sheet lets you customise the notification subject and content, but it does not currently provide full control over the underlying webhook JSON sent to Slack, Microsoft Teams, Discord, or Google Chat.

If you need a specific webhook field that is not currently supported, please email <support@checksheet.app> and describe what you are trying to send.

> ℹ️ Custom notification content requires a [paid subscription](https://checksheet.app/pricing/)


# Spreadsheet Changes


# Why were notifications sent after I sorted my sheet?

Check Sheet remembers which cells have already matched your check so it does not keep sending notifications about the same result.

It does this based on the position of the matching cell in your spreadsheet.

If you sort your sheet directly, insert rows in the middle of your data, delete rows, or move rows around, the position of your existing values can change. When that happens, Check Sheet may see some of those values in new cell positions and send notifications again.

For example, if a value in `A10` has already matched your check, Check Sheet remembers that match. If you sort the sheet and the same value moves to `A25`, Check Sheet would now treat `A25` as a new match.

## How to avoid this

If you need to sort or filter your data, use a Google Sheets filter view instead of directly sorting the sheet.

Filter views let you sort and filter what you see without changing the underlying position of the rows in the sheet. This means Check Sheet can continue recognising the cells it has already notified you about.

To create a filter view in Google Sheets:

1. Open your spreadsheet.
2. Select the range you want to sort or filter.
3. Click `Data`.
4. Click `Create filter view`.

You can then sort or filter the data inside the filter view without physically moving the rows for everyone.

## Adding new rows

If your workflow regularly adds new records, add them at the bottom of your sheet where possible.

Avoid inserting new rows in the middle of data that Check Sheet is already monitoring, because this can shift the positions of existing matches and cause duplicate notifications.

If you want the newest or oldest records to appear first, add new rows at the bottom and then use a filter view to display the data in the order you need.

## Deleting rows

Deleting rows can also shift the positions of the rows beneath them.

If you need to keep a record but do not want it to trigger a check any more, consider changing its status or moving it outside the range monitored by your check instead of deleting rows from the middle of the monitored data.

## What to do if you already received duplicate notifications

If duplicate notifications were caused by sorting, inserting rows, deleting rows, or moving rows around, they should stop once the sheet structure stays stable again.

To reduce the chance of it happening again:

* Avoid directly sorting the monitored sheet.
* Add new records at the bottom of the sheet.
* Use filter views for sorting and filtering.
* Avoid inserting or deleting rows in the middle of monitored data.


# Why were notifications sent after I added or deleted rows?

Check Sheet remembers which cells have already matched your check by their position in the spreadsheet.

If you insert rows in the middle of data that Check Sheet is monitoring, delete rows, or move rows around, the position of existing values can change. When that happens, Check Sheet may see those values in new cell positions and send notifications again.

This is similar to what can happen when a sheet is sorted directly. For the full explanation, read [Why were notifications sent after I sorted my sheet?](/faq/spreadsheet-changes/why-did-check-sheet-send-notifications-after-sorting-my-sheet).

## How to avoid this

Where possible, add new rows at the bottom of your sheet instead of inserting them into the middle of existing data.

Avoid deleting rows from the middle of the range monitored by your check, because this can shift the rows beneath them into new positions.

If you want to change the order of your data, add new records at the bottom and use a Google Sheets filter view to display the data in the order you need. Filter views let you sort and filter what you see without physically moving the rows in the sheet.

## What to do instead of deleting rows

If you need to keep a record but do not want it to trigger a check any more, consider changing its status or moving it outside the range monitored by your check.

If you do need to delete rows, duplicate notifications should stop once the sheet structure stays stable again.


# Examples

Here are some examples of how you can set up Checks to solve some common problems.

* [Checking when a single cell value is updated](https://checksheet.app/google-sheets-notifications-when-cell-value-changed/)
* [Checking when a range of cells is updated](https://checksheet.app/google-sheets-notifications-when-range-of-cell-values-change/)
* [Checking when a column is updated](https://checksheet.app/getting-notified-when-a-column-is-updated-in-google-sheets/)
* [Checking when a row is updated](https://checksheet.app/getting-notified-when-a-row-is-updated-in-google-sheets/)
* [Checking when a row is added](https://checksheet.app/getting-notified-when-a-new-row-is-added-in-google-sheets/)


# Limits

What limits apply to your usage of Check Sheet.

We offer a free version of our app that you can use for as long as you like with some limitations placed on your usage and certain features only available on paid plans, this enables us to cover our running costs and fund future improvements. We reserve the right to change these at any time but will do our best to give you notice of any changes that might affect your usage of Check Sheet.

### Spreadsheets

You can use Check Sheet in as many spreadsheets as you like.

### Checks

You can create 1 check on our free plan, if you reach this limit you will need to either delete your existing check before you can add a new one or upgrade to one of our paid plans.

### Notifications

You can send up to 500 notifications per month on our free plan. If you wish to send more than this you will need to upgrade to a [paid subscription plan](https://checksheet.app/pricing/).

This limit will reset monthly, any remaining allowance will not rollover. You can view your remaining allowance for this month from the Check Sheet > Settings screen, accessible from the drop down menu within the Check Sheet app.

### Google

Our application is also subject to the following [quotas and limits](https://developers.google.com/apps-script/guides/services/quotas) enforced by Google. For typical usage patterns they are unlikely to affect you but they are listed here for transparency.


