Overview
There are two ways to gather data.
- Dashboard in the back office: perfect for gaining quick insights into key behavioral metrics without the need Watchers provides a robust method for additional integration. No extra setup is required partners to access this data.
- Data collection via webhook: recommended for those needing deeper, receive real-time analytics. This approach involves setting up a webhook URL in the admin panel to receive event data directly in your system. These on user interactions within chat environments by sending events can be used directly to create custom scenarios triggered through your backend, such as rewarding users for specific actions.
Back Office Dashboard
The back office dashboard includes the following sections and functionalities:
- Overview Metrics
- DAU/WAU/MAU metrics available for daily, weekly, and monthly user engagement tracking.
- Messages and User Activity
- Metrics for total messages sent, animated reactions, and reactions to messages are available for the last 90 days and 6 months.
- Active users and users who sent at least one message are tracked over the same periods for comprehensive insights.
- Active users for a particular period
- Copy-betting widgets usage - if activated (a number of shared bets, a number of clicks on "copy button")
- Win-sharing widget usage - if activated (a number of shared wins, and a number of click on the game in-widget button)
- Data Updates
- A "Refresh" button for instant data updates and then refresh the page.
- Automated synchronisation with the latest metrics occurs at 00:00 GMT (0).
This dashboard system allows partners to track key behavioural metrics in chats. For deeper analytics, we recommend implementing a system to monitor and respond to user activities, ensuring seamless integration with your data collection via a webhook, which is described in the next section.
Webhooks
Note: All event timestamps are stored in GMT+0. Please take this into account when building charts to ensure accurate time-based analysis. handling protocols.
Enabling Event Tracking
Webhooks can be configured to receive real-time events directly into an external database. Here’s how to set it up:
All Events Webhook: To begin receiving chats, are tagged. A list of events can be found below.
- Enable events, enable this feature through the toggle under the "All events" section.
- Provide a valid URL where events Admin Panel. Once enabled, our system will be sent.
- Click "Save" to transmit event data to confirm the settings.
- Use the "Test" button to verify the webhook configuration.
Room Events Webhook:
- Enable the toggle under the "Rooms" section.
- Provide the desired URL for room-specific events.
- Events include:
- Create your specified API endpoint each time a scheduled room is created.
- Updates to scheduled room details (date, time, name), including status changes.
- Deletion of a scheduled room.
- Updates to the list of users with voice permissions (speakers) whenever room data is modified.
- Save and test relevant user interaction occurs within the configuration as needed.
Webhooks enable seamless integration of platform events into external systems for further analysis and processing.
API Endpoint Requirements
Each event is communicated via a POST request to your API. The general structure of these requests is as follows:
{
"event": "event_name",
"value": {
"user_id": "user_id",
"project": "project_name",
...other fields depends on event
}
}Recommendations for Data Storage and Analysis Tools
ClickHouse is a columnar database management system that is ideal for handling large volumes of event data due to its:
- High performance for real-time data ingestion.
- Excellent support for analytical queries.
- Compatibility with structured and semi-structured data formats.
Recommended Steps:
- Create a dedicated table for events: Depending on your specific needs, design a schema that includes necessary fields such as event_type, user_id, timestamp, and additional properties.
- Process webhook events directly: Capture webhook payloads in real-time and write them into ClickHouse using an HTTP endpoint.
- Partition data: Partition your tables by time (e.g., daily or hourly) to optimize query performance and simplify data management.
_Optional: If you anticipate high throughput or require buffering, consider integrating tools like Kafka to preprocess or distribute webhook events before storing them in ClickHouse.
Properties Contained in EVERY Event
Important: These fields are automatically added to ALL events by the system.
| Property | Type | Description | Source |
|---|---|---|---|
user_id | string | User ID (encrypted) | Frontend |
event_id | string | Room ID | Frontend |
project | string | Project ID | Frontend |
platform | string | Platform (web, ios, android, none) | Frontend |
screen_size | string | Physical screen size (e.g., "360x800") | Frontend |
platformUserAgent | string | Browser user agent | Frontend |
event_name | string | Event name (duplicates "event" field) | Backend |
created_at | string | ISO 8601 timestamp | Backend |
source_url | string | Page URL where event occurred | Frontend |
user_name | string | User's display name | Frontend |
nickname | string | Alias for user_name | Frontend |
room_title | string | Room/chat title | Frontend |
decrypted_user_id | string | Decrypted user ID (if available) | Frontend |
source | string | Context: "room", "thread", or "personal_bot" | Frontend |
read_only | boolean | Read-only mode flag | Frontend |
Events and Properties
This section outlines the key events tracked for product analytics, offering insights into user behavior and interactions within chats. Each event is detailed in the table below, including its name, associated properties, and a brief description.
List of Events
Note: Events highlighted in bold in the ‘Event’ column are mandatory for tracking basic product metrics related to user interactions within the chat.
Example Payload
{
"event": "session_started",
"value": {
"user_id": "BUmXxFyNMNE6FUVhL+ECSQ==",
"event_id": "16888417",
"event_name": "session_started",
"created_at": "2026-01-14T12:30:45.123Z",
"source_url": "https://chat.example.com/room/123",
"user_name": "John Doe",
"nickname": "John Doe",
"room_title": "EPL Final Discussion",
"decrypted_user_id": "user_12345",
"platform": "web",
"screen_size": "1920x1080",
"platformUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"project": "partner-prod",
"source": "room",
"read_only": false,
"room_status": "on_air"
},
"key": "JGMHFqonZuwKeoly+bzNnw=="
}Events Reference
Note: Events marked with bold are mandatory for tracking basic product metrics. All timestamps are stored in GMT+0.
Session & Room Events
| Event | Description | Additional Properties |
|---|---|---|
session_started | User opens the chat iframe | room_status: on_air, soon, unavailable, ended |
room_opened | Messages loaded after entering chat | chat_event_name: event/room name |
session_time | Tracks session duration | duration: seconds (integer) |
Onboarding Events
| Event | Description | Additional Properties |
|---|---|---|
la_opened | User opens License Agreement | - |
la_closed | User closes License Agreement | - |
agreement_accepted | User accepts PP and LA | - |
name_set | User saves name during onboarding | user_name: entered name |
avatar_set | User sets avatar during onboarding | type: "custom" or "preset", url: avatar URL |
Settings Events
| Event | Description | Additional Properties |
|---|---|---|
settings_opened | User opens settings | - |
profile_opened | User opens profile | profile_user_id: viewed user ID, source: "menu" or "chat" |
change_avatar_pressed | User clicks change avatar | - |
avatar_changed | User changes avatar | type: "custom" or "preset", url: new avatar URL |
change_name_pressed | User clicks change name | - |
name_changed | User changes name | user_name: new name |
banned_opened | User opens blocked users list | - |
unblocking_pressed | User unblocks someone | - |
delete_profile_pressed | User clicks delete profile | - |
delete_profile_confirmed | User confirms profile deletion | - |
delete_profile_cancelled | User cancels profile deletion | - |
account_restored | User restores deleted account | - |
User List Events
| Event | Description | Additional Properties |
|---|---|---|
user-list_opened | User opens participant list | - |
user-list_closed | User closes participant list | - |
Messaging Events
| Event | Description | Additional Properties |
|---|---|---|
message_sent | Message is sent | messageType: text/sticker/reply/bot_request, text: message content, message_id: ID, room: room ID, thread_id: thread ID (if applicable), replyedUserId: replied user, replyedMessageId: replied message |
message_changed | User edits message | message_id: edited message ID |
message_deleted | User deletes message | message_id: deleted message ID |
scrolled_to_unread_messages | User scrolls to unread | - |
message_text_copied | User copies message text | message_id: copied message ID |
scroll_to_message | User scrolls to specific message | message_id: target message ID |
pinned_message_opened | User clicks pinned message | message_id: pinned message ID |
Moderation Events
| Event | Description | Additional Properties |
|---|---|---|
report_pressed | User clicks report | - |
report_sent | User sends report | reportType: Violence, Provocations, Personal Details, Flood, Spam, Fraud, Begging, Other |
blocked_user_pressed | User blocks someone | blocked_user_id: blocked user ID |
ban_level_selected | Admin selects ban level | ban_level: selected level |
ban_reason_selected | Admin selects ban reason | reason: selected reason |
Emotions & Reactions Events
| Event | Description | Additional Properties |
|---|---|---|
emo_panel_pressed | User opens emotion panel | - |
emoji_sent | User sends emoji | emoji_number: ordinal number (1 = leftmost) |
message_reaction_sent | User reacts to message | message_reaction_number: reaction number, message_id: target message |
Stickers Events
| Event | Description | Additional Properties |
|---|---|---|
sticker_button_pressed | User opens sticker panel | - |
sticker_sent | User sends sticker | sticker_number: sticker ordinal number |
Poll/Quiz Events
| Event | Description | Additional Properties |
|---|---|---|
pq_opened | User opens poll/quiz | type: poll/quiz/multiple_poll/multiple_quiz, question: text, img: boolean, user_status: authorized boolean, poll_id: ID |
pq_viewed | User views poll results | type, question, img, poll_id |
pq_answer_sent | User votes/answers | type, question, answer: selected answer(s), img, poll_id |
pq_closed | User closes poll | type, question, img, poll_id |
Marketing Offers (Highlights) Events
| Event | Description | Additional Properties |
|---|---|---|
hl_viewed | User views highlight | hl_content: highlight text or "none", offer_id: ID |
hl_button_pressed | User clicks highlight button | hl_content, hl_button_text: button text, offer_id |
Stream & Connection Events
| Event | Description | Additional Properties |
|---|---|---|
bad_connection | Poor connection detected | - |
agora-join | User joins audio/video | channel: channel ID |
agora-leave | User leaves audio/video | channel: channel ID |
agora_switch_mic | User toggles microphone | status: on/off |
agora_switch_speaker | User toggles speaker | status: on/off |
agora_switch_video_camera | User toggles camera | status: on/off |
Feedback Form Events
| Event | Description | Additional Properties |
|---|---|---|
ff_stream_evaluated | User rates stream | evaluation: 1-5 rating |
Note: The following feedback events are defined but not yet implemented:
ff_stream_type_of_problem_selectedff_stream_connection_testedff_stream_successff_stream_closed
Copy-betting Events
| Event | Description | Additional Properties |
|---|---|---|
betshare_list_opened | User opens share button | - |
betshare_list_bet_shared | User shares bet | bet: full bet object with positions |
betshare_chat_repeated | User clicks repeat bet | bet: bet object |
betshare_open_in_sl | User opens bet in sportsline | bet_id: bet ID |
Win-sharing Events
| Event | Description | Additional Properties |
|---|---|---|
winshare_list_opened | User opens win share | - |
winshare_list_win_shared | User shares win | win: win object |
winshare_chat_played | User plays shared game | game_id: game ID |
Giveaway Events
| Event | Description | Additional Properties |
|---|---|---|
giveaway_opened | User opens giveaway | giveaway_id: ID |
giveaway_closed | User closes giveaway | giveaway_id |
giveaway_participate_pressed | User clicks participate | giveaway_id |
giveaway_participated | User successfully participates | giveaway_id |
giveaway_share_pressed | User shares giveaway | giveaway_id |
giveaway_rules_opened | User opens rules | giveaway_id |
giveaway_winner_shown | Winner displayed to user | giveaway_id, is_winner: boolean |
giveaway_claim_pressed | Winner clicks claim | giveaway_id |
giveaway_claimed | Prize claimed | giveaway_id |
Records (Audio Playback) Events
| Event | Description | Additional Properties |
|---|---|---|
records_player | Player view changed | view: "minimized" or "expanded" |
records_play | User plays recording | time_stamp: playback second |
records_pause | User pauses recording | time_stamp: pause second |
records_forward | User skips forward | Duration: skip seconds (default 15) |
records_back | User skips back | Duration: skip seconds (default 15) |
records_speed_changed | User changes speed | Speed: 1, 1.5, or 2 |
Info Pop-ups Events
| Event | Description | Additional Properties |
|---|---|---|
ip_viewed | Pop-up shown to user | header: heading text or "none", show: "once" or "multiple_times", show_when: "on_each_entry" or "once_daily" |
ip_button_pressed | User clicks pop-up button | header, button_text, content, show, show_when |
Autotranslate Events
| Event | Description | Additional Properties |
|---|---|---|
autotranslation_toggle | User toggles autotranslate | status: "on" or "off" |
autotranslation_language | User selects language | language_selected: language code, source: "modal" or "settings" |
User Following Events
| Event | Description | Additional Properties |
|---|---|---|
following_filter_toggle | User toggles following filter | status: "on" or "off" |
follow_pressed | User follows someone | followed_user_id: user ID |
unfollow_pressed | User unfollows someone | unfollowed_user_id: user ID |
Thread Events
| Event | Description | Additional Properties |
|---|---|---|
thread_opened | User opens thread | thread_id: thread ID, message_id: parent message |
thread_closed | User closes thread | thread_id |
Personal Chat Events
| Event | Description | Additional Properties |
|---|---|---|
personal_chat_opened | User opens personal chat | chat_user_id: other user ID |
Notification Events
| Event | Description | Additional Properties |
|---|---|---|
room_soon_notify_enabled | User enables room notification | room_id: room ID |
room_soon_notify_disabled | User disables room notification | room_id |
Slow Mode Events
| Event | Description | Additional Properties |
|---|---|---|
message_sending_blocked_slowmode | Message blocked by slow mode | cooldown: remaining seconds |
Widget Events
| Event | Description | Additional Properties |
|---|---|---|
copy-betting_widget_settings_opened | Copy-betting settings opened | - |
copy-betting_widget_updated | Copy-betting widget updated | Widget configuration fields |
win_sharing_widget_settings_opened | Win-sharing settings opened | - |
win_sharing_widget_updated | Win-sharing widget updated | Widget configuration fields |
wager_wall_shown | Wager wall displayed | - |
Miscellaneous Events
| Event | Description | Additional Properties |
|---|---|---|
invite_link_sent | Invite link shared | link: invite URL |
go_to_replay_pressed | User clicks go to replay | replay_id: replay ID |
external_link_clicked | User clicks external link | url: clicked URL |
Backend Events (via Kafka)
These events are generated by backend services. They are sent to ClickHouse via Kafka topics.
Note: Backend events use Kafka topics pattern:
webbackend.event.{event-name}.0oradminproxy.event.{event-name}.0
User Activity Events
user_join
user_joinTriggered when user joins a room.
{
"event": "user_join",
"value": {
"project": "partner-prod",
"external_user_id": "user_12345",
"room_id": "16888417",
"is_bot": false,
"is_moder": false
}
}user_leave
user_leaveTriggered when user leaves a room.
{
"event": "user_leave",
"value": {
"project": "partner-prod",
"external_user_id": "user_12345",
"room_id": "16888417"
}
}user_disconnect
user_disconnectTriggered when user disconnects from WebSocket.
{
"event": "user_disconnect",
"value": {
"project": "partner-prod",
"external_user_id": "user_12345"
}
}user_login
user_loginTriggered on user authentication.
{
"event": "user_login",
"value": {
"project": "partner-prod",
"external_user_id": "user_12345",
"ip": "192.168.1.100"
}
}Messaging Events
thread_create
thread_createTriggered when a new thread is created.
{
"event": "thread_create",
"value": {
"project": "partner-prod",
"external_user_id": "user_12345",
"room_id": "16888417",
"thread_id": "thread_789"
}
}reaction_create
reaction_createTriggered when user adds a reaction to a message.
{
"event": "reaction_create",
"value": {
"project": "partner-prod",
"external_user_id": "user_12345",
"message_id": "msg_456",
"reaction": "👍"
}
}message_reply
message_replyTriggered when user replies to a message.
{
"event": "message_reply",
"value": {
"project": "partner-prod",
"external_user_id": "user_12345",
"message_id": "msg_789",
"reply_to_id": "msg_456"
}
}message_moderation
message_moderationTriggered when a message is moderated (hidden, deleted, etc.).
{
"event": "message_moderation",
"value": {
"project": "partner-prod",
"message_id": "msg_456",
"action": "hide",
"reason": "spam"
}
}| Action | Description |
|---|---|
hide | Message hidden from chat |
delete | Message permanently deleted |
restore | Message restored |
Content Processing Events
text_translate
text_translateTriggered when text is translated.
{
"event": "text_translate",
"value": {
"project": "partner-prod",
"from_lang": "ru",
"to_lang": "en",
"chars": 156
}
}file_upload
file_uploadTriggered when a file is uploaded.
{
"event": "file_upload",
"value": {
"project": "partner-prod",
"name": "image.png",
"size": 245678
}
}pic_moderation
pic_moderationTriggered when an image is processed by moderation system.
{
"event": "pic_moderation",
"value": {
"project": "partner-prod",
"image_id": "img_123",
"result": "approved"
}
}| Result | Description |
|---|---|
approved | Image passed moderation |
rejected | Image rejected |
manual_review | Sent for manual review |
Invitation Events (Admin Proxy)
invitation_create
invitation_createTriggered when admin creates an invitation.
{
"event": "invitation_create",
"value": {
"project": "partner-prod",
"admin_id": "admin_001",
"token": "inv_abc123"
}
}invitation_update
invitation_updateTriggered when invitation is updated.
{
"event": "invitation_update",
"value": {
"project": "partner-prod",
"admin_id": "admin_001",
"token": "inv_abc123",
"is_active": false
}
}invitation_delete
invitation_deleteTriggered when invitation is deleted.
{
"event": "invitation_delete",
"value": {
"project": "partner-prod",
"admin_id": "admin_001",
"token": "inv_abc123"
}
}Backend Events Summary
| Event | Kafka Topic | Key Fields |
|---|---|---|
user_join | webbackend.event.user-join.0 | external_user_id, room_id, is_bot, is_moder |
user_leave | webbackend.event.user-leave.0 | external_user_id, room_id |
user_disconnect | webbackend.event.user-disconnect.0 | external_user_id |
user_login | webbackend.event.user-login.0 | external_user_id, ip |
thread_create | webbackend.event.thread-create.0 | external_user_id, room_id, thread_id |
reaction_create | webbackend.event.reaction-create.0 | external_user_id, message_id, reaction |
message_reply | webbackend.event.message-reply.0 | external_user_id, message_id, reply_to_id |
message_moderation | webbackend.event.message-moderation.0 | message_id, action, reason |
text_translate | webbackend.event.text-translate.0 | from_lang, to_lang, chars |
file_upload | webbackend.event.file-upload.0 | name, size |
pic_moderation | webbackend.event.pic-moderation.0 | image_id, result |
invitation_create | adminproxy.event.invitation_create.0 | admin_id, token |
invitation_update | adminproxy.event.invitation_update.0 | admin_id, token, is_active |
invitation_delete | adminproxy.event.invitation_delete.0 | admin_id, token |
Admin Panel Events
Events from the admin panel (webadmin). These events track admin actions for audit purposes.
Note: All admin events include base fields:
user_id(admin ID),project,name(admin name),role.
Content Management
admin_message_sent
admin_message_sentAdmin sends a message to chat.
{
"event": "admin_message_sent",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"name": "Admin User",
"role": "admin",
"room_id": "16888417",
"message_id": "msg_123",
"text": "Welcome to the chat!"
}
}admin_pin_created / admin_pin_deleted
admin_pin_created / admin_pin_deletedAdmin creates or deletes a pinned message.
{
"event": "admin_pin_created",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"room_id": "16888417",
"message_id": "msg_456",
"title": "Important announcement"
}
}admin_autopost_created / admin_autopost_edited / admin_autopost_deleted
admin_autopost_created / admin_autopost_edited / admin_autopost_deletedAdmin manages autoposting.
{
"event": "admin_autopost_created",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"autopost_id": "ap_123",
"content": "Scheduled message content",
"schedule": "0 12 * * *",
"room_id": "16888417"
}
}admin_highlight_created / admin_highlight_edited / admin_highlight_deleted
admin_highlight_created / admin_highlight_edited / admin_highlight_deletedAdmin manages marketing highlights.
{
"event": "admin_highlight_created",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"highlight_id": "hl_123",
"content": "Special offer!",
"button_text": "Claim now",
"url": "https://example.com/offer",
"start_date": "2026-01-15T00:00:00Z",
"end_date": "2026-01-20T23:59:59Z"
}
}admin_poll_created / admin_poll_deleted
admin_poll_created / admin_poll_deletedAdmin manages polls/quizzes.
{
"event": "admin_poll_created",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"poll_id": "poll_123",
"type": "quiz",
"question": "Who will win?",
"answers": ["Team A", "Team B", "Draw"],
"correct_answer": 0,
"room_id": "16888417"
}
}User Management
admin_user_banned
admin_user_bannedAdmin bans a user.
{
"event": "admin_user_banned",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"banned_user_id": "user_456",
"ban_level": "permanent",
"reason": "Spam",
"room_id": "16888417"
}
}| Ban Level | Description |
|---|---|
warning | Warning only |
mute_1h | Muted for 1 hour |
mute_24h | Muted for 24 hours |
ban_7d | Banned for 7 days |
permanent | Permanent ban |
admin_user_unbanned
admin_user_unbannedAdmin unbans a user.
{
"event": "admin_user_unbanned",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"unbanned_user_id": "user_456"
}
}admin_message_deleted
admin_message_deletedAdmin deletes a user's message.
{
"event": "admin_message_deleted",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"message_id": "msg_789",
"message_author_id": "user_456",
"reason": "Inappropriate content"
}
}Room Management
admin_room_created
admin_room_createdAdmin creates a new room.
{
"event": "admin_room_created",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"room_id": "16888418",
"title": "Champions League Final",
"start_date": "2026-05-30T20:00:00Z",
"status": "soon"
}
}admin_room_updated
admin_room_updatedAdmin updates room settings.
{
"event": "admin_room_updated",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"room_id": "16888417",
"title": "Updated Room Title",
"status": "on_air",
"changed_fields": ["title", "status"]
}
}| Room Status | Description |
|---|---|
soon | Room scheduled, not yet started |
on_air | Room is live |
ended | Room has ended |
unavailable | Room is unavailable |
admin_room_deleted
admin_room_deletedAdmin deletes a room.
{
"event": "admin_room_deleted",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"room_id": "16888417"
}
}Settings Changes
admin_settings_updated
admin_settings_updatedAdmin changes project settings.
{
"event": "admin_settings_updated",
"value": {
"user_id": "admin_001",
"project": "partner-prod",
"category": "moderation",
"opai_is_enabled": true,
"gcp_is_enabled": false,
"auto_hide_is_enabled": true,
"auto_ban_is_enabled": false
}
}Common settings categories and fields:
| Category | Fields |
|---|---|
moderation | opai_is_enabled, gcp_is_enabled, auto_hide_*, auto_ban_* |
features | threads, show_stickers, show_animated_reactions, share_button |
users | allow_avatar_change, allow_name_change, nickname_is_enabled |
privacy | saving_user_ip_is_enabled, decrypt_is_enabled |
integration | all_events_is_enabled, rooms_is_enabled, bearer |
Admin Events Summary
| Event | Category | Key Fields |
|---|---|---|
admin_message_sent | Content | room_id, message_id, text |
admin_pin_created | Content | room_id, message_id, title |
admin_pin_deleted | Content | room_id, message_id |
admin_autopost_* | Content | autopost_id, content, schedule |
admin_highlight_* | Content | highlight_id, content, button_text, url |
admin_poll_* | Content | poll_id, type, question, answers |
admin_user_banned | Users | banned_user_id, ban_level, reason |
admin_user_unbanned | Users | unbanned_user_id |
admin_message_deleted | Users | message_id, message_author_id, reason |
admin_room_* | Rooms | room_id, title, status, start_date |
admin_settings_* | Settings | category, various *_is_enabled fields |
Q&A on Data Storage and Processing
-
Location of Storage and Processing Data is processed and stored entirely within Google Cloud infrastructure. Data distribution is carried out based on territorial principles to ensure compliance with local data protection laws and regulations. For instance, data subject to GDPR regulations is stored in Google Cloud’s European regions. This approach provides enhanced protection a complete understanding of users’ personal data and ensures compliance with GDPR requirements for data processing and storage within the European Union. We strictly adhere to Google Cloud’s policies and technical security measures to safeguard our users’ data in line with best practices and international standards.
-
How Long? We retain users’ personal data only as long as necessary to provide our services in accordance with the contract and GDPR requirements. Once the data is no longer needed for these purposes, it is deleted or anonymized. Our processes ensure compliance with GDPR’s principle of storage limitation, and we regularly review stored data to remove any unnecessary information.
Scenarios and Retention Periods for Data Deletion:
a. End of Collaboration with a Partner. When the collaboration (contract) with a partner ends, we delete all data accumulated during the partnership, except for information that may be required by regulators. We ensure no information is retained longer than necessary.
b. User-Initiated Data Deletion:
-
If a user or their representative requests data deletion from the platform where the chat is integrated, all data related to the user is erased.
-
Users can delete their accounts through the chat interface. After deletion, chat messages what events are anonymized immediately, and all other user data is deleted within 30 days of the request. During this 30-day period, the user has the option to recover their data. After this period, all user data stored on Watchers’ side is permanently deleted.
-
Users can also delete their messages sent in the chat. Once deleted, the message becomes hidden for all chat users and is marked as deleted in the database. After 30 days, the message is also removed from the message feed in the admin panel. However, if the message had any complaints filed against it, it will continue to appear in the report list. Once the complaints are reviewed and processed, the message will be moved to the archive
c. API Tracked, including payload examples for immediate data deletion. We provide an API that allows Watchers platform users to send requests for the immediate deletion of all data associated with each specific user, except for data required to meet regulatory requirements. This ensures partners can respond to user deletion requests promptly and securely, further enhancing GDPR compliance.
- What Type of Data is Stored and Processed To ensure the operation of our chats and analyze user interactions, we work with two types of data:
- Operational Data: These data are necessary for the direct operation of the chats. They include the user's name or nickname, which may be classified as personal data. We use these data solely so that users can use our chats without issues.
- Chat Name / Nickname
- IP (optional)
- User messages
- Analytical Data: These data are used event, refer to analyze how users interact with our chats and which features they use. For analytics, we apply anonymized data, meaning they contain no personal information about the user. detailed event list section below. This allows us section will help you configure your systems to improve our services without compromising user confidentiality. Thus, we clearly differentiate data necessary for the operation of the chats (operational) handle and data necessary for analysis and improvement of our services (analytical), while ensuring the protection of our users' personal information.
Updated 18 days ago