Connected Services and Telemetry
This notice describes the information that the Countly server software and the Countly dashboard send to Countly Ltd ("Countly," "we," "our," or "us"), and the Countly services they connect to. It applies to every Countly server: Countly Flex servers and Countly-hosted servers, which Countly operates for its customers, and Countly Enterprise servers that customers run on their own infrastructure ("self-hosted servers").
Most of this information is technical information about the installation and operation of a Countly server ("Service Data"). The AI Assistant and crash symbolication, described below, are different: they send Customer Data, as our data processing agreements define it, to Countly's connected services.
Flex servers and Countly-hosted servers are operated by Countly, and the reports described here are switched on. On Flex servers, the server's global administrators can change the tracking settings and offline mode in Server Settings.
Who is responsible for Service Data
Countly Ltd is the controller of Service Data from Countly-hosted and self-hosted servers. We use it for licence management, security and support: to check that servers are correctly licensed, to find and fix errors and security problems, and to know which versions, features and SDKs are in use so that we can support them. We rely on our legitimate interests in these purposes (Art. 6(1)(f) UK GDPR and GDPR). On Countly Flex servers, Countly processes Service Data for these purposes under the Flex Data Processing Agreement.
For Countly Enterprise customers, the data points and monthly active users that the License Manager reports, which also reach Countly in the server's telemetry, are used only for billing and licence compliance, as the enterprise agreements describe.
What your server sends to stats.count.ly
Each Countly server reports to Countly's own server at stats.count.ly, identifying itself by its domain name (configured, or taken from the address used to open the dashboard). The running server reports when it starts and while it runs, and a scheduled job sends a daily report. Depending on the settings described under "How to switch it off", the reports contain:
- the Countly, Node.js and MongoDB versions, and whether the server runs in Docker;
- the edition, the hosting type, the enabled plugins and whether the server runs a trial;
- the names and versions of the Countly SDKs seen in the server's data;
- the numbers of applications, end users and dashboard users, the number of event types, and the times of the most recent data and of the most recent dashboard login;
- in the daily report, the number of administrative actions of each type per day;
- reports of errors and crashes in the server software, with their error messages and stack traces; a report of a deletion or update that has failed repeatedly also includes the database and collection names and up to 900 characters of the query and of the error message;
- when the AI Assistant is used, a record of each interaction: the tools the assistant used, token counts, cost and response time, the model and API address used, and any rating the user gives the answer, together with up to 4,000 characters of the prompt, the answer and the model's reasoning and the values passed to the tools (from version 26.10 only if an administrator turns this on);
- when the dashboard is white-labelled, the custom logo or icon image.
What the dashboard sends from your browser
The Countly dashboard loads Countly's Web SDK, which sends stats.count.ly the names of the dashboard pages that are viewed, with identifiers removed, under the server's domain. The Web SDK can also show Countly's own messages in the dashboard, and the in-dashboard guides can show a Countly survey. It keeps its state, including the server's domain as its identifier and the messages already shown, in the browser's local storage.
These requests come from the browser of the person using the dashboard, so stats.count.ly receives that browser's IP address and user agent.
Content and downloads from Countly
- Dashboard content: the dashboard and the server download guides and other dashboard content from cms.count.ly. These requests contain no Customer Data, but cms.count.ly sees the IP address of the server or of the user's browser.
- SDK list: the server downloads the current list of Countly SDKs from code.count.ly.
- Licences: self-hosted and Countly-hosted servers check their licence with stats.count.ly and download renewed licences, identifying the server by its domain.
AI Assistant
By default the AI Assistant uses Countly's AI gateway at ai-gateway.count.ly, with a key that Countly issues after the server sends the gateway its licence (on Flex servers, Countly sets up the key when the server is created), and the gateway forwards each request to the model provider set for the AI Assistant: by default Google (Gemini API), or OpenAI. Each request contains the user's prompt, the conversation so far and the dashboard page in use and, depending on the AI Assistant settings, metadata such as event keys and aggregated data shown in graphs.
Crash symbolication
By default, crash symbolication sends each crash report it symbolicates (its stack trace, with the operating system version, CPU architecture and binary images, and your server's domain) and the symbol files you upload to Countly's symbolication service at symbolication.count.ly, which returns the symbolicated stack trace.
How to switch it off
All of these connections are on by default. On a self-hosted server you can switch them off as follows; on a Flex server, the global administrators can use the offline mode and tracking settings described in the first two points:
- Offline mode stops the daily report, the SDK list download from code.count.ly and the server's other automatic downloads except the dashboard content from cms.count.ly. It does not stop the licence checks, or the reports that the running server and the dashboard send, which the tracking settings control.
- The tracking settings separately switch off the reports the running server sends while it runs, its other event reports (from version 26.10 also the AI Assistant interaction records), error and crash reports, dashboard page views, Countly's messages in the dashboard, and the counts and times listed above.
- The AI Assistant and crash symbolication contact Countly's services only when they are used; you can switch the AI Assistant off or point it at a gateway you run yourself, and point crash symbolication at your own symbolication server.
The summary the running server sends when it starts (its domain, versions, edition, hosting type, enabled plugins and SDKs and, when white-labelled, its logo), the dashboard content from cms.count.ly, the guides survey in the dashboard and the licence checks have no setting of their own. To stop them, block connections to stats.count.ly and cms.count.ly in your network; a licence that requires contact with Countly can then lock the server.
Some self-hosted servers run air-gapped, with no network connection to Countly. The server itself sends nothing described in this notice, but if the browsers that open its dashboard can reach the internet, the dashboard still contacts stats.count.ly and cms.count.ly.
Where Service Data is kept
stats.count.ly runs on Countly's own infrastructure in the European Union.
Contact
If you have questions about this notice, contact us at privacy@count.ly.