Skip to the content
Menu

Privacy Policy

Last updated: 2 November 2026

Watchtower is operated by SHAJ Studio. This policy explains what data the application accesses, what it stores and what it does not.


1. What Watchtower is

Watchtower is a monitoring application for HighLevel agencies. It is installed once at agency level, reads configuration and activity signals from the agency's sub-accounts and reports problems by email and through a dashboard.

Watchtower is read-only. It never creates, changes or deletes anything in a customer's account or their clients' accounts. It does hold one write-type permission, used only to request read-only access to each sub-account (see section 5).

2. What we access

Watchtower requests permissions to read the data listed below, plus one permission it uses only to request read-only access to each sub-account. The agency approves these at install. Together they allow it to read:

The full list of permissions is shown on the consent screen before installation.

3. What we store

We store configuration metadata and event counts, not customer records.

Specifically, we store:

We do not store contact records or message content. Incoming webhook data is stripped before it is written: contact names, email addresses, phone numbers and the body text of emails and SMS messages are discarded and never persisted. What remains is the identifier and the fields our checks read. Webhook data passes through our network provider (Cloudflare) and our host (Railway) on its way to us.

Our server logs hold agency names, sub-account names, the email addresses of digest recipients and the visitor address of the first request after each restart. Our host keeps them for its own retention period. When an agency marks a finding not useful, the note, the finding text and the agency and sub-account names are also emailed to us so we can improve our checks. We also receive emails about how the service is running, for example when a check cannot run for an agency or when an account becomes inactive. These name the agency and sometimes its sub-accounts. We keep them in our own mailbox until we delete them by hand, and we delete those about an agency when it asks us to. Our email provider also keeps copies for its own retention period.

Message text and SMS error text are read into memory to make a decision and are never written to our database. The outbound-message and carrier-error-code checks above read directly from HighLevel at the moment a check runs, use only the specific field named (who sent it and when, or the error code), and discard everything else, including the message body and the raw error text, before anything is stored.

4. What we send by email

Watchtower emails a digest to the recipients an agency configures, daily by default, or weekly, or paused, at the hour the agency sets. It contains sub-account names and the findings we detected, and links to your Watchtower dashboard, where each finding links straight to the setting in HighLevel that needs fixing. A finding can include counts, deal value totals and names the agency has set up, such as forms, workflows, calendars, campaigns, pipelines, stages, AI agents, tags, custom fields, trigger links with their addresses, social accounts and sending domains. It can also include a phone number, the text of a custom value, a payment error message or the error text from a failed social post. It does not contain contact data or message content.

We also email the agency's recipients a notice when Watchtower loses access and needs to be reconnected.

Email is sent through Resend. Agencies choose their own recipients and can pause digests or stop all email at any time from the settings page. A reconnect notice is still sent while digests are paused, because monitoring has stopped until the connection is restored. Any recipient can also unsubscribe directly from a link included in every digest. If a recipient reports a digest as spam, we treat it as an unsubscribe from that agency's digests. If an address cannot receive email, we stop sending to it and mark it on the agency's settings page.

We record whether digest emails are opened, to measure whether they're useful.

5. Access credentials

OAuth tokens issued by HighLevel are encrypted at rest using AES-256-GCM. They are used only to make the read requests described above, and to request a read-only access token for each sub-account from the agency's own token.

6. Deletion

When you uninstall Watchtower from your agency, the agency's data is deleted from our database immediately. The exceptions are a small number of sub-account creation and update event records and a log of webhook deliveries that is not linked to any agency. A daily clean-up removes the event records after 90 days at the latest, and the delivery log is deleted after 4 days at the latest. A few short-lived records, such as server logs, delivery logs and copies of emails already sent, are kept by us or our providers for a limited time and expire according to each one's retention period. Our email provider, Resend, keeps its own list of addresses that hard-bounced or reported our email as spam, so nothing is sent to them again. That list is held by Resend and is not cleared when an agency uninstalls.

Our database host, Neon, keeps a restore history of 2 days. Encrypted backups are kept for up to 7 days, then deleted. They do not contain the stored webhook event records. Data deleted from our database can therefore remain in that history for up to 2 days and in an encrypted backup for up to 7 days before it is gone for good.

If a single sub-account is removed or uninstalled while the agency stays installed, we stop monitoring it and delete its access token. A daily clean-up deletes its stored findings, name and settings once 14 days have passed. If the sub-account is added back within those 14 days, its data is kept. If HighLevel tells us a sub-account was deleted, we delete its data straight away.

A later reinstall starts fresh.

If your HighLevel account becomes inactive, we pause monitoring and delete your data after 14 days unless the account becomes active again.

Agencies may also ask us to delete their data, or the data of one sub-account, at any time by emailing support@shajstudio.com from an address we hold for the agency. We confirm who is asking, delete the data and confirm back in writing. We aim to finish within 30 days of confirming the request.

7. Sub-processors

We also keep a plain count of how many times each install button on our website is pressed, and how many times the install link a visitor emails to themselves is opened, per day. It holds no IP address, cookie or other visitor details. The email-yourself button only opens your own email app; the message you send does not come to us.

Link checks. To check that a trigger link or domain redirect still works, our servers send one web request to the address your agency configured, identifying itself as Watchtower-LinkChecker. We use only whether the address responded and never keep the page. We do not send these requests to private or internal network addresses.

The tour video on our website loads from YouTube (privacy-enhanced mode) only when a visitor presses play.

8. What we do not do

9. Security

Data is transmitted over TLS. Tokens are encrypted at rest. Database backups are encrypted before they are stored, and the key that opens them is not kept with them. Access to the dashboard requires a signed token or an authenticated HighLevel session, and every request is scoped to a single agency's own data.

10. Your agency's own clients

Where an agency's sub-accounts contain personal data belonging to their clients' customers, the agency remains the controller of that data. Watchtower acts as a processor, reads only what is described above, and stores only the identifiers and fields listed in section 3, never the names, contact details or message content of those customers. Text an agency writes into its own account, such as custom values or trigger link addresses, can appear in findings exactly as written.

11. Changes

We will update this policy when what we store or access changes, and revise the date at the top.

12. Contact

support@shajstudio.com