Changelog
Follow up on the latest improvements and updates.
RSS
Through the
Good Implementation Practice
s for document_version
guide , the aim is to standardize how technical teams manage document versions within integrations with the ROOK SDK and APIs.This guide helps ensure reliable communication between client systems and ROOK integration, reducing synchronization errors, incompatibilities, and the use of outdated data during integration processes.
Standardization
The initiative aims to prevent common errors stemming from improper version control, such as synchronization failures, incompatibilities between environments, and the transmission of outdated data. With proper implementation of
document_version
, developers can maintain more stable integrations, reduce production issues, and optimize the traceability of collected data.Technical context
The
document_version
acts as a key identifier within ROOK's data structures. Each submitted data structure includes this version, which allows for validation of the delivered JSON version by referencing an update to a previously extracted and delivered data structure.{
"client_uuid" : "demoClientUUID" ,
"user_id" : "demoUserId" ,
"version" : 2 ,
"document_version" : 1 ,
"data_structure" : "physical_summary" ,
"physical_health" : {
"summary" : {}
}
}
To avoid these scenarios, ROOK recommends that teams proactively validate and update health data with each new delivery of data structures according to their version.
Principles of good practice
The following recommendations should be followed when integrating ROOK and using datasets:
- Keep the document_versionupdated and synchronized.
- Record and track changes to the data before and after each dataset delivery.
- Avoid using outdated versions.
These recommendations aim to strengthen the reliability of the integration ecosystem and significantly reduce the risk of operational errors.
General guidelines
- document_versionidentifies the most recent state of a user's synchronized data.
- Whenever the user's data changes (for example, new measurements or updates from the source), the version also changes.
- ROOK uses this value to determine what information has already been delivered and what still needs to be synchronized.
- Customers must correctly store, update, and forward the latest document_versionreceived in each communication.
Synchronization and storage
- Always save the latest synchronized document_version.
- Never manually generate this value; versions are managed exclusively by ROOK.
- Avoid deleting or resetting previously stored versions.
- Maintain sequential synchronization to ensure data consistency.
Logs and traceability
It is recommended to record the following in the internal logs:
- The previous and new value of document_versionin each synchronization.
- Compatibility or misalignment errors detected.
This facilitates monitoring, debugging, and historical control of changes between versions, allowing for a faster response to incidents or inconsistencies.
Recommended implementation flows
- First time you receive a dataset
- It will arrive with document_version: 1.
- Validate the day or time window of the dataset using the datetimefield .
- Save the entire dataset.
- Use that version as your initial reference for synchronization and display.
- An updated dataset arrives
- ROOK will send a document_versiongreater (for example, 2).
- Validate the datetime of the dataset, as updates from previous days may arrive.
- If the dataset corresponds to the same time window, it completely replaces the previous dataset.
- Save the new document_versionlike the current version.
- From that moment on, all interaction must be synchronized using that version.
- If you receive a minor version
- Example: You have version 2 and you receive version 1.
- Validates the datetimeof the dataset.
- Sometimes updates from previous days arrive, but the correct match should always be based on the combination: document_version+datetime.
- If the document_versionis lower, ignore the dataset.
- Log the event as misalignment.
- Using datetime
- It is not enough to use only document_version, you must also consider the datetime of the dataset.
- This is key because ROOK can send updates from previous days, and if only the version is compared, errors such as the following can occur:
- Example 1: Current day: 20/11/2025, you receive document_version = 5.
- Then comes a `document_version = 6 `, but from 11/18/2025.
- `datetime` is not validated: You could incorrectly replace the data from the 20th with old data from the 18th.
- Example 2: You have document_version = 5from 11/20/2025.
- Then comes `document_version = 3` from 11/19/2025`.
- With the correct logic: That dataset should be ignored, as its version is smaller and corresponds to a previous day.

Validations and testing
To ensure a stable and consistent
document_version
implementation, it's necessary to validate the integration's behavior under various scenarios. These tests help detect misalignments, update errors, and synchronization issues before going into production.- Validate receipt of the first dataset or initial version: confirm that the user correctly receives the initial version.
- Validate update with new version: ensure that data is replaced correctly when a major version is released.
- Validate misalignment (minor version): prevent old data from overwriting current information.
- Validate loss of synchronization: verify that the client can recover the correct state if they lose the saved version.
- Validate logging: ensure useful traceability for support and debugging.
Implementation Checklist
Correct use of document_version:
- The client always stores the latest document_versionreceived. Validate that each received dataset includesdocument_version.
1. major version → replace entire dataset
2. minor version → ignore and log in
- Do not manually edit the document_versionvalue.
- It does not mix datasets with different versions.
- Ensure that the updated dataset replaces the previous one
Technical FAQ
What happens if I don't update the document_version?
If you don't update it, your integration may display outdated or inconsistent data. This often leads to logic errors and problems with the end-user experience.
What do I do if I receive a dataset with a lower document_version?
Ignore it completely. That indicates a misalignment or a resending of old data. The correct thing to do is:
- Do not replace the current dataset.
- Record the event in logs.
How do I know if I should replace the dataset?
Very simple:
- Major version: replaces the entire previous dataset.
- Same version: You shouldn't receive it, but if it happens, ignore it.
- Minor version: ignore it and log in as misalignment.
Can I generate the document_version myself?
No. The version is generated solely by ROOK to ensure consistency and traceability. Your integration should only receive, store, and forward it.
What happens if I mix datasets from different versions?
You will generate corrupt or inconsistent data for the end user.
Each dataset represents a complete snapshot of the user's state: they are not mixed, they are replaced.
How do I prove that my implementation is correct?
You must validate:
- First dataset → version 1 received and stored.
- Update → major version replaces all data.
- Misalignment → minor version is ignored.
- Logging → before/after each version.
- Recovery → validate behavior if your client “loses” the version.
Why does ROOK use document_version?
For:
- Ensure that the client always displays the user's latest correct photo.
- Avoid inconsistencies if old data is resubmitted.
- Ensure stable synchronization in integrations with many users and sources.
new
Portal
JSON Simulator
We are announcing the launch of the JSON Simulator, a new tool in the ROOK portal designed to simplify and accelerate the validation of integrations with our API and SDK ecosystem.
The JSON Simulator allows teams to simulate, preview, and send real JSON payloads to their configured webhook, without the need for a physical wearable or data generated by end users. The tool integrates directly with the existing configuration of the ROOK portal.

Previously, customers needed an active wearable and had to wait for data generation to validate their webhook. With the JSON Simulator, that bottleneck disappears.
The tool allows you to:
- Send complete and consistent JSON payloads to the customer’s Data Webhook.
- Preview data by health pillar, structure, and data source.
- Test pipelines without relying on null values.
- Generate a generic user_id that does not affect real data.
Key capabilities
- Automatic webhook verification: Before generating or sending data, the simulator checks whether the webhook is active to avoid errors or incomplete tests.
- Detailed data-source selection: Customers can choose the specific data source, health pillar, and data structure. Only compatible combinations are shown.
- Realistic and complete JSON generation: Generated JSON strictly follows ROOK’s Version 2 data structure and reflects the customer’s portal configuration.
- Direct webhook delivery: Allows end-to-end integration testing and provides immediate feedback.
- Simple flow, guaranteed speed: Generation and delivery take no more than 3 seconds per request.
Impact for customers
The JSON Simulator reduces integration times, removes dependency on wearables for testing, and improves understanding of how data varies across brands and structures. This enables teams to:
- Train their product without physical devices.
- Safely validate JSON and dashboards.
- Ensure their webhooks work correctly before going live.
Availability
The JSON Simulator is available in the ROOK portal under the Tools module. Customers must have a configured webhook to use it; otherwise, they will be redirected to the configuration area.
FAQ
What is the JSON Simulator?
It is a tool in the ROOK portal that allows you to generate, preview, and send real JSON payloads to the customer’s Data Webhook, without physical wearables or real user data.
What is it for?
It speeds up and simplifies integration validation with ROOK’s APIs and SDKs. It enables full-flow testing without waiting for real data or relying on devices.
What problem does it solve?
Previously, customers needed an active wearable to validate webhook reception, which caused delays.
With the JSON Simulator, tests are immediate and fully controlled.
What type of data can I simulate?
You can simulate any JSON available in ROOK’s Version 2 data structure by selecting:
- Compatible data source/brand
- Health pillar
- Structure (Summary, Activity, Heart Rate, etc.)
Are the JSON payloads real or test data?
They are real JSONs based on ROOK’s official structure, but they contain a generic user_id that does not affect your KPIs or real data.
Can I send the JSON directly to my webhook?
Yes. The tool allows you to:
- Preview the JSON
- Copy or download it
- Send it directly to your configured webhook. You’ll always get immediate feedback indicating success or failure.
What happens if my webhook is not active?
The simulator automatically checks its status.
If it’s inactive, you won’t be able to generate or send JSON. The portal will guide you to activate it.
Which portal configurations affect the JSON?
The simulator respects your active settings, such as granularity and other applicable parameters.
Do the JSONs include null values?
You can generate fully populated JSON payloads without nulls—ideal for testing pipelines, dashboards, or transformations.
How long does it take?
Generation and delivery take less than 3 seconds per request.
What concrete benefits does my team get?
- Faster validations
- Less dependency on wearables
- More reliable integrations
- Better internal technical training
- End-to-end tests in minutes
Where can I find the JSON Simulator?
In the ROOK portal under Tools → JSON Simulator.
Who can use it?
Any customer with a Webhook already configured in the portal.
If you don’t have one, the system will automatically redirect you to configure it.
new
SDK´s
ROOK releases its LTS SDK update
We are currently releasing the update LTS (Long Term Support)of its SDKs, a release focused on the reliability, scalability, and technical maturity of the ROOK SDKs. This update not only improves the experience of syncing and retrieving health data from Health Connect and Apple Health, but also expands support for new sources such as Samsung Health.
SDKs focused on stability, performance, and traceability
The LTS update addresses one of the key pillars of ROOK's technical strategy: ensuring that every integration with health data sources is faster, more robust and predictable.
During this stabilization cycle, we focused on three main objectives:
- Optimize data synchronization and management, increasing update frequency without compromising data integrity.
- Unify and strengthen diagnostic and logging tools, allowing developers to gain greater visibility into the behavior of their integrations.
- Ensure a more modular and scalable architecture that allows for the frictionless incorporation of new data sources and functionalities.
Health Connect - Version 2.4.0
The new version of the SDK of Health Connect introduces critical improvements to synchronization, offering developers more control and improved data accuracy. The most notable updates are:
- Reduced the wait time after reaching dropping to just 45 minutes before attempting to synchronize again.
- More flexible manual synchronizations, even after exceeding request limits.
- New manual synchronization method, replacing obsolete components and simplifying integration.
- Optional parametercancelAndReschedule, which allows you to cancel and reschedule dynamic background synchronizations.
- Local access to synchronized data, eliminating the need for additional calls to view health summaries (sleep, activity, body, and events).
- Improved management of time zones and time types, ensuring global consistency in biometric records.
These combined improvements increase refresh rate, energy efficiency, and data accuracy, directly impacting the quality of digital health experiences built on ROOK.
Samsung Health - Version 1.1.0
The new SDK for Samsung Health is part of the improvements included in this LTS update.
With this release, developers can access activity, sleep, heart rate, body weight, and workout data directly from Samsung Health, without intermediary apps.
The SDK offers:
- Direct and secure integration with Samsung Health.
- Full compatibility with ROOK data structures, ensuring consistency with Apple Health and Health Connect.
- Automatic and manual synchronization for greater flexibility.
- Simplified permission management, guiding the user through the authorization process.
With this launch, we aim to consolidate our position as an interoperable platform that connects multiple healthcare ecosystems under a single data model, reducing development costs and accelerating time-to-market.
Apple Health - Version 1.7.9
The SDK of Apple Health also receives an update focused on the technical robustness, scalability and traceability of the system. This release aims to improve the internal architecture of the SDK and offer developers a more stable and predictable environment.
Key improvements include:
- Implementing the Builder design pattern, allowing for clearer separation of responsibilities, better code modularity, and greater ease of testing and future extensions.
- Optimization of the log collection and sending system, increasing the reliability of captured information and reducing the possibility of data loss during transmission.
- Improved monitoring and traceability, with a higher log retention rate and a more stable diagnostic flow in production environments.
- Better internal organization of dependencies and components, facilitating future integrations with new data sources or services.
Together, these enhancements provide a stronger technical foundation, more consistent performance, and more detailed diagnostic capabilities for applications that rely on accurate, continuous health data.
Compatibility with new framework versions
Along with this LTS update, ROOK SDKs will also include updates for the latest versions of mobile frameworks, ensuring a smooth and up-to-date integration:
- React Native: version 2.1.0
- Flutter - Apple Health: version 1.10.0
- Flutter - Health Connect: version 3.3.0
- Flutter - Samsung Health: version 1.1.0
- Capacitor: version 1.0.0
These updates ensure that developers can integrate ROOK SDKs seamlessly into their latest projects, maintaining stability and compatibility with the most recent releases.
ROOK as universal health data infrastructure
With the stabilization of its SDKs, ROOK reinforces its vision of becoming the standard infrastructure for health and wellness data interoperability.
Each improvement in this version seeks to reduce technical friction, increase the reliability of information and allow companies to build personalized experiences from the biometric data of its users, without worrying about the complexity of each source.
Frequently Asked Questions
What is the ROOK SDK LTS update?
The update LTS (Long Term Support) is a stable release focused on improving the reliability, performance, and scalability of ROOK SDKs. This release includes improvements to Health Connect, Apple Health, and the addition of the new SDK for Samsung Health.
Is it mandatory to update to this version?
No. However, it's recommended to upgrade to take advantage of performance optimizations, new synchronization methods, and fixes that ensure better data and log handling. Previous versions will continue to work for a limited time, but will no longer receive active support or bug fixes.
What benefits does this update offer?
- More efficient and flexible synchronization in Health Connect.
- Better log management and a more modular architecture in Apple Health.
- The new SDK for Samsung Health expands compatibility with other health platforms.
- Improved stability, reduced wait times, and improved control over synchronization execution.
What major changes have been made to the Health Connect SDK?
This release includes a reduction in the wait time after the health connect request quota to 45 minutes, along with more flexible manual syncs and a new manual sync method that simplifies integration. The optional parameter is also added
cancelAndReschedule
, which allows you to cancel and reschedule background tasks, as well as local access to synchronized health data and better management of time zones and time records.What's included in the new SDK for Samsung Health?
The SDK allows direct access to data from activity, sleep, heart rate, body weight, and workouts from Samsung Health, without the need for intermediary apps. It also maintains compatibility with the ROOK data model and supports both manual and automatic synchronization.
What improvements does the Apple Health SDK include?
The update incorporates the implementation of the Builder design pattern, geared toward a more modular architecture. It also optimizes log collection and delivery, improves system stability and traceability, and internally reorganizes components to facilitate future integrations and maintenance.
How does this update affect current developers?
Developers will be able to continue using their current integrations without any immediate mandatory changes. However, the new versions offer a more stable foundation and a better development experience, so a gradual migration is recommended.
Where can I find updated documentation?
Full documentation with technical details and implementation examples is available on the ROOK developer portal: https://docs.tryrook.io
Will there be support for older versions?
Yes, but on a limited basis. Previous versions will receive minimal maintenance for a defined period (see support notes). After that, it's recommended to fully migrate to the LTS version to ensure future compatibility.
Who should I contact in case of questions or incidents?
ROOK's technical support team is available through the developer support channel or by direct contact at support@tryrook.io.
improved
SDK´s
Integrations Web API
Extraction All Keys
As part of our commitment to delivering more useful, complete, and customizable health data, ROOK has implemented a new comprehensive data extraction system from connected sources, both API-Based and SDK-Based. This solution enables the use of 100% of the available keys from all integrated data sources.
Until now, data access was limited to a subset of keys, restricting the potential for analysis, personalization, and value generation for end users. Thanks to this enhancement, all available keys have been extracted, inventoried, and organized within our data structure, allowing for a richer and more robust integration.
A solution to unlock the full value of wearables
This new capability drastically reduces the loss of valuable data that was previously unused. The comprehensive extraction system implemented at ROOK allows for:
- Collecting all accessible data from health-related APIs and SDKs.
- Documenting and classifying each key with precise metadata: name, source, data type, response parameters, and description.
- Organizing all keys within our data structure: whether as part of events, summaries, or unstructured data.
- Unifying the naming and structure of data from various sources to facilitate analysis and interoperability.
Standardization and efficiency in integration
With this solution in production, the process of integrating new sources becomes more agile, consistent, and transparent. For more information, you can refer to our documentation:
Frequently Asked Questions
What are the benefits of this full key integration?
It allows companies to access the full set of data available from each connected source, improving analysis accuracy, user experience personalization, and the ability to generate deeper insights.
What types of data are integrated with this solution?
It includes all health data collected by wearables and mobile apps. Every metric available at the source can now be extracted and used within ROOK systems.
Which data sources are covered?
Currently, all integrated sources are supported, including:
- Android
- Apple Health
- Dexcom
- Fitbit
- Garmin
- Health Connect
- Polar
- Oura
- Whoop
- Withings
How is data quality and consistency ensured?
Each extracted key is documented, classified, and standardized to ensure accurate interpretation and use. Additionally, normalization rules are applied to unify measurement units and formats, making it easier to analyze and ensure interoperability across sources.
Is it compatible with ROOK’s event and summary structures?
Yes. This solution is fully designed to integrate with our JSON schemas for events and summaries, ensuring full continuity in data flow without compromising the existing architecture.
How does this enhancement impact products built on ROOK?
Products integrated with ROOK can now access a richer dataset, enabling more complete health and performance analysis.
Does this require new integrations from clients?
No. This upgrade is backward-compatible and does not require changes to existing integrations. Expanded key access is automatically available to all clients already consuming data through our current endpoints.
Where can I find more technical information?
You can visit the API Reference and Data Sources documentation, where you’ll find updates on new keys available in the ROOK data structure, organized by data source.
new
SDK´s
Samsung Health SDK
Samsung Health is coming to ROOK through native SDK for Android, React Native, Flutter & Capacitor (Ionic), enabling direct and reliable access to health data generated by the Samsung Health app. This integration expands ROOK’s coverage within the Android ecosystem.
Integration designed to make the most of the Samsung ecosystem
While Samsung Health can be accessed via Health Connect, this dedicated solution provides greater control over the user experience and the quality of the data. By connecting directly with Samsung’s ecosystem, ROOK can deliver a more tailored, accurate, and continuous integration for Android users.
Full access to Samsung ecosystem data
Thanks to this integration, ROOKConnect users on Android will be able to link their Samsung Health accounts and access health data such as:
- Step count and daily physical activity
- Exercise data (calories, distance, heart rate)
- Sleep data (duration, sleep stages, and automatic updates)
- Glucose, blood pressure, and oxygen saturation
- Water intake and nutrition
- Weight, height, and other key body metrics
The system is also prepared to detect when this data is updated later (as it happens with sleep stages). In such cases, only the relevant changes are sent, ensuring the user always sees the most current information.
Continuous synchronization
The integration is designed to keep data updated throughout the day. Current-day data like sleep is refreshed automatically, and the system can also retrieve data from previous days—without any user action. This ensures a smooth and always up-to-date experience.
Recovery of pre-existing data with no loss of information
If the device was inactive for several days, the system can recover up to 29 days of physical activity events and sleep/body summaries. This ensures that important health information is not lost and gives users a complete view of their wellness.
Compatibility with various environments and future improvements
The current development supported on native Android, React Native, Flutter, and Capacitor available.

Frequently Asked Questions
What devices or users can access this integration?
Any Android user with the Samsung Health app installed and a compatible device can activate the integration through a ROOKConnect client app.
What type of data can be synced from Samsung Health?
A wide variety of health data can be synchronized, including:
- Step count and daily activity
- Exercise metrics: distance, calories, heart rate
- Sleep data and stages
- Glucose, blood pressure, and oxygen saturation
- Weight, height, hydration, and nutrition
- General body information
Is data synchronization real-time?
Synchronization occurs automatically several times a day, especially for sleep. If changes are detected, the data is progressively updated without duplicates. This ensures users always have the most recent and accurate information.
Do I need to open Samsung Health for the data to sync?
In most cases, no. However, it’s recommended to open the Samsung Health app at least once a week. Samsung automatically syncs with its cloud, and the ROOK SDK can read this data without user interaction. In some models, enabling Samsung Cloud sync may be helpful.
What happens if I don’t open the app for several days?
The system can retrieve up to 29 days of physical activity and sleep data when the user opens the app again. This prevents data loss even if the device was inactive for a while.
Why don’t the values I see in ROOK match what I entered in Samsung?
Samsung stores certain values (like glucose or weight) in different internal units and converts them automatically. This can cause slight variations in the final numbers. ROOK applies rounding to make sure values closely match what users expect to see.
Why does my workout sometimes appear as “other workout”?
Samsung doesn’t always classify workout types immediately or accurately. In such cases, ROOK displays the data as it was received from Samsung.
How does synchronization work if workouts are paused?
If a workout is paused for more than 10 minutes, a new event is generated. If the pause is shorter, ROOK treats it as an update to the original event.
Does this integration replace Health Connect?
No. Health Connect remains a valid integration path. However, this direct integration with Samsung allows for a more precise, real-time, and Samsung-specific data experience.
How often does the SDK automatically sync with Samsung Health?
The SDK triggers an automatic synchronization every 3 hours, even if the user isn’t using the app. This ensures regular data collection throughout the day.
Does synchronization happen right after I generate new data?
Not necessarily. Synchronization depends on Android's operating system policies, such as Doze and App Standby, so the process may not occur instantly.
Does battery saver mode affect automatic syncing?
In most cases, no. The SDK is designed to continue working in the background even with battery saver enabled. However, behavior can vary depending on the phone model and system settings.
What happens if I open the app or tap "Initialize SDK"? Does it reset the sync cycle?
No. Manual actions don’t affect the automatic sync schedule. The SDK will continue syncing every 3 hours from the last successful synchronization.
What if a piece of data wasn’t synced during a scheduled attempt?
If an event or data point wasn’t collected during a sync, the SDK will attempt to retrieve it in the next cycle, provided it’s still available in Samsung Health and hasn’t been filtered out by ROOK’s internal rules.
This project focuses on optimizing the authorization endpoint for data sources in ROOK. The new version,
/v2
, replaces the previous version /v1
, which returned a flat response with simple boolean values.The redesigned version delivers a richer and more visually informative structure, aimed at improving the experience for both developers and end users. The response now includes:
- Name of the data source (e.g., Apple Health, Garmin, Fitbit)
- User's authorization status
- Logo of the data source
This enhanced endpoint allows for more dynamic, intuitive, and user-friendly interfaces, making it easier to visualize which wearables or health apps are currently connected.
Endpoint Request
- Method: GET
- URL: /api/v2/user_id/{user_id}/data_sources/authorized
- Example Response:
{
"data_sources": [
{
"data_source": "Oura",
"status": false,
"image": "https://example.com/images/oura.png"
},
{
"data_source": "Apple Health",
"status": true,
"image": "https://example.com/images/apple_health.png"
},
...
]
}
Key Features of the New Endpoint
- Simplified and enriched JSON structure with visual metadata
- Improved performance and data load efficiency
- Scalable across multiple platforms and devices
- Compatible with both API and SDK integrations
- Ideal for user-facing dashboards and connection interfaces
Frequently Asked Questions
What is the authorized endpoint?
It’s an API resource that allows you to check whether a user has authorized health or wellness data sources such as wearables or apps (e.g., Fitbit, Garmin, Apple Health).
What is the endpoint URL?
GET /api/v2/user_id/{user_id}/data_sources/authorized
What improvements does it offer over version /v1?
- Enriched structure including name, image, and status per source
- Better performance and clarity
- More personalized and user-friendly interfaces
- Replaces a simple boolean-based response with a detailed object list
What parameters are required?
user_id
: required string (unique identifier of the user)What does a typical response look like?
A list of objects representing each enabled source, including its authorization status and an image for UI rendering.
What HTTP status codes are returned?
- 200 OK: Data retrieved successfully
- 400 Bad Request: Invalid or missing parameters
- 401 Unauthorized: Authentication failure
- 500 Internal Server Error: Unexpected server error
This project aims to allow customers to customize the complementary properties of their integration through the ROOK portal, automating the configuration processes. The main goal is for customers to make changes autonomously and immediately, without the need for support intervention. This will speed up the implementation of changes in their configurations.
Scope
The feature introduces an automated configuration management system within the ROOK portal. Customers will have access to an intuitive interface to make real-time adjustments. Available features include the ability to add or edit URLs for webhook notifications, set time zones, enable or disable granular data, and activate security protocols. Each action will be fully audited to ensure traceability.
Empowering Customer Autonomy
This system will allow customers to manage their configurations quickly and efficiently, eliminating unnecessary wait times. Automating these processes will provide them with the flexibility to adapt the product to their needs.

Key Benefits
- Intuitive Interface: Easy-to-use design that enables customers to make changes with confidence and security.
- Access Permissions: Strict control to ensure that only authorized users can modify key configurations.
Main Configurations Available
The Customize ROOK module will include three main categories:
- General Settings
- Webhook Notifications: Enables users to add or edit URLs to which notifications of specific events or changes will be sent. These notifications can be used to inform other systems or services when a significant event or update occurs.
- Redirect URL: Allows customizing the redirect URLs used after linking data sources. This is useful when the system requires sending the user to a different page after completing the integration process.
- Time Zone: Allows users to set the time zone in which operations will occur within their account. This is crucial to ensure that data and notifications align with the client’s local time.
- Data Settings
- Receive Granular Data: Allows enabling or disabling the collection of granular data, which are more detailed and specific records (such as minute-by-minute or second-by-second data). These data provide deeper analysis but can be heavier to process and store.
- Receive Unstructured Data: Allows handling and storing unstructured data, such as logs or free-form information. These data are typically harder to organize in a conventional way but can be valuable in certain cases.
- Pre-Existing Data: Allows managing data that already exists in the system or comes from external sources prior to integration with ROOK.
- Security Settings
- Basic Auth: Enables basic authentication, which requires users to enter a username and password to access certain areas of the system. This adds a layer of security before making sensitive configurations.
Frequently Asked Questions (FAQ)
What is configuration automation in the ROOK portal?
It is a new feature that allows customers to modify and manage configurations without the need for manual intervention from the support team.
Is it available to all customers?
Yes, this feature will be available to all ROOK customers. However, keep in mind that the modules you configure will be available based on your plan and contract. If you'd like to activate a module, please contact ROOK support.
What are the main advantages of this feature?
- Less dependency on technical support.
- Quick implementation of changes.
- Greater control and customization of configurations.
- Smoother and more efficient user experience.
What configurations can I modify in the portal?
- Webhook Notifications configuration.
- Modify Redirect URL.
- Select a custom time zone.
- Enable/disable Granular Data and Unstructured Data.
- Configure Pre-Existing Data.
- Enable/disable Basic Auth.
Can I revert configuration changes?
Yes, customers can edit and update their configurations at any time within the portal.
When ROOK extracts health data, the information often comes in raw form and without a clear structure. This phenomenon is known as unstructured data, and it represents one of the biggest challenges (and opportunities) for ROOK.
What is unstructured data?
Unstructured data is any information that does not follow a fixed or predictable format. It is not organized in rows or columns, and often appears as free text or custom fields where each manufacturer decides how to report it.
ROOK simplifies the chaos
ROOK takes this unstructured data, interprets it, and transforms it into a standardized, ready-to-use structure. Essential data, such as sleep duration, heart rate, or glucose levels, is converted into clean, consistent fields.
This way, ROOK allows developers and companies to connect multiple data sources without worrying about odd formats or inconsistencies. It enables more effective work with health data without having to interpret each source individually.
Access to unstructured data
ROOK makes both structured and unstructured data available to users, depending on the client’s needs. To enable unstructured data in event and summary JSONs, please check your plan or contact ROOK Support.
JSON with unstructured data
Unstructured data will be delivered by ROOK via the respective JSONs, depending on the event or summary it comes from. In this case, we’ll use an example of unstructured data from a Physical Summary extracted from Garmin.
{
"non_structured_data_array": [
{
"userId": "",
"summaryId": "",
"startTimeInSeconds": 1746486000,
"startTimeOffsetInSeconds": 3600,
"durationInSeconds": 120,
"calendarDate": "2025-05-06",
"timeOffsetStressLevelValues": {
"0": 19
},
"timeOffsetBodyBatteryValues": {
"0": 26
}
},
{
"userId": "a27b4eb2-7722-445a-84ca-de65c1977316",
"summaryId": "x3aaeee0-681942f0-78-0",
"calendarDate": "2025-05-06",
"activityType": "GENERIC",
"activeKilocalories": 0,
"bmrKilocalories": 2,
"steps": 0,
"distanceInMeters": 0,
"durationInSeconds": 120,
"activeTimeInSeconds": 0,
"startTimeInSeconds": 1746486000,
"startTimeOffsetInSeconds": 3600,
"moderateIntensityDurationInSeconds": 0,
"vigorousIntensityDurationInSeconds": 0,
"floorsClimbed": 0,
"minHeartRateInBeatsPerMinute": 52,
"maxHeartRateInBeatsPerMinute": 52,
"averageHeartRateInBeatsPerMinute": 52,
"restingHeartRateInBeatsPerMinute": 49,
"stepsGoal": 10000,
"intensityDurationGoalInSeconds": 9000,
"floorsClimbedGoal": 200,
"averageStressLevel": 19,
"maxStressLevel": 21,
"restStressDurationInSeconds": 120,
"stressQualifier": "unknown"
}
],
"sources_of_data": [
"Garmin"
]
}
Through this article, ROOK aims to define the interpretation of ROOKScore. This classification is designed to offer users a clearer and more intuitive understanding of their overall well-being through ROOKScore and its associated health pillars.
This new approach introduces performance levels based on percentage ranges, which allows individuals to better interpret their health data and identify areas for improvement:
- Poor: 0% – 60%
- Fair: 61% – 75%
- Good: 76% – 85%
- Excellent: 86% – 100%
These levels will be reflected in all ROOKScore indicators, including the pillars of sleep, physical health, and body health, providing a consistent framework to assess progress and set achievable goals. By adding these intuitive scoring levels, we help users take practical steps to improve their health, while also making the data more accessible and motivating.
Frequently Asked Questions
What is ROOKScore?
ROOKScore is a tool that measures your overall well-being through different health pillars, such as sleep, physical health, and body health. This score is calculated using health data.
Why have we introduced the new scoring levels?
We have implemented these levels to make ROOKScore results more understandable and accessible. Now, users can easily see what range they fall into and which areas need improvement to reach optimal health.
How are ROOKScore results classified?
Results are classified into the following ranges:
- Poor: 0% – 60%
- Fair: 61% – 75%
- Good: 76% – 85%
- Excellent: 86% – 100%
These levels reflect your overall performance in the health pillars, such as sleep, physical health, and body health.
How are these levels applied to the health pillars?
Each of the health pillars (sleep, physical, and body) will receive a rating based on the same percentage ranges. This allows the user to see not only their overall score but also which specific areas they should focus on to improve their well-being.
How can users improve their ROOKScore?
To improve ROOKScore, it is recommended to focus on the pillars where a low score was obtained. This may include improving sleep quality, increasing physical activity, or adopting healthier habits overall. The key is to take practical and consistent steps towards achieving a higher score.
How does this new classification benefit me?
By understanding more clearly and simply where you stand in each health pillar, you will be able to make informed decisions and set realistic goals to improve your overall well-being. Additionally, motivation increases when you can see tangible progress toward an "Excellent" health status.
Are these levels included in the ROOKScore JSONs?
Not at this time. Clients will be able to implement this interpretation directly.
ROOK is developing an optimization for Granular Data a new feature designed to provide clients with more detailed and standardized information.
Many companies working with health data require precise and consistent information. Until now, Granular Data from different sources arrived at varying times, leading to inconsistencies in analysis and making data-driven decision-making more challenging.
Greater control and standardization
Granular Data allows clients to customize the reception of information
- Temporal Standardization: Data from multiple sources is unified within the same time frame, preventing inconsistencies in user graphs and analyses.
- Personalized Management: Clients can choose to receive data as delivered by original sources or apply intelligent adjustments filling in missing data using averaging algorithms and AI for greater accuracy.
- Duplicate Elimination: When duplicate data is detected from different sources, the system prioritizes the most reliable and relevant information.
Impact on our Clients
With Granular Data, clients and their users will access more reliable health information, facilitating the development of innovative products and insights.
Our goal is to deliver more useful and accurate data, allowing clients to focus on what truly matters: Innovation and strategic decision-maker.
Frequently Asked Questions
What is Granular Data Standardization?
Granular Data Standardization is a ROOK feature that ensures data from various health sources (Such as Garmin, Apple Health, Health Connect) is aligned within a unified time frame, reducing empty values and duplicates for more consistent and reliable insights.
Why is Granular Data Standardization important?
Health data is received at different intervals and formats depending on the sources, leading to inconsistencies in analysis. Standardization ensures greater accuracy, making data easier to interpret and enhancing the end-user experience.
What are the Benefits of Granular Data Standardization for Clients?
- Temporal unification: Ensures data consistency for more reliable analysis.
- Duplicate Elimination: Removes redundant data from multiple sources.
- Customization Options: Allows clients to receive raw data or apply intelligent algorithms for enhanced accuracy.
How Does Temporal Standardization Work?
Temporal standardization adjusts data to arrive at a consistent interval. For instance, if one source sends data every 5 seconds and another every 20 seconds, intermediate values can be estimated using averaging or artificial intelligence algorithms.
Can Clients Choose How to Receive the Data?
Yes, Each client can choose whether to receive data as delivered by the original source or prefer it to be adjusted using standardization mechanisms and missing data filling techniques.
What Happens with Duplicate Data?
If a metric is received from multiple sources (E.g., Garmin And Apple Health), a priority criterion will be applied to select the most reliable one, preventing duplicates in the analysis.
What Types of Data Are Being Standardized?
Some of the data that has already been standardized includes:
- Physical Activity: Steps, distance traveled, activity level, cadence.
- Heart Rate and Variability: HR, HRV, RMSSD, HRV SDNN
- Oxygenation and Breathing: Oxygen saturation, VO2
- Other Metrics: Elevation, torque, speed and power.
What Happens If a Source Does Not Provide Data at the Same Interval as Others?
If a source sends data less frequently, imputation methods can be applied to fill based on averages and predictive algorithms.
How Is Granular Data Configured?
Clients interested in this solution should contact their Customer Success representative to request this feature. Please note that this feature comes with an additional cost beyond the client´s existing plan.
Does Granular Data Affect Data Processing Performance?
No, We have implemented optimizations to ensure that standardization does not slow down data processing, seamlessly integrating into existing pipelines.
What Happens with Null/Empty Information?
When searching for a consistent period in granular data, there may be cases where no data source contains the value corresponding to the generated timestamp.
In these cases, the client has 4 options:
- Mark the missing data as empty
- Fill the missing data using the last available
- Fill the missing data using the average of the neighborhood.
- Fill the missing data using the median of the neighborhood.
How Can I Get More Information About This Feature?
For more details, you can contact our support team.
Load More
→