Before you can start using StopWatch for HubSpot, you must successfully install the app within your HubSpot account. Choose one of the 2 options below to get started.
Install via the HubSpot App Marketplace
Install via direct OAuth link
The user who first installs the app in a given HubSpot Portal is the designated StopWatch for HubSpot Primary Admin. Managing additional admins is handled via user-specific app settings. If you need to update your primary admin, please submit a support request
After the installation process is complete, hopefully you’ll see an installation success message. If you see an error message, please wait a couple of minutes before trying again. If you see an error message again, please submit a support request. For reference, we’ve included some screenshots of the installation process below.
As part of the installation process, HubSpot will ask you to confirm within which account/portal you’d like to install the StopWatch for HubSpot app. You’ll then be prompted to allow StopWatch for HubSpot access to certain information and permissions relating to the selected HubSpot account. We only request access and permissions necessary to deliver our services. If you’d like to discuss why we need certain access or permissions, please get in touch via email: support@threadi.au
Free trial ended? Create a subscription to continue enjoying access to all app features
Price Lock Promise: We never raise prices for active subscription holders. As long as your subscription is active, your price remains locked in.
Please ensure you’ve successfully installed StopWatch for HubSpot within your HubSpot account before proceeding with any steps outlined in this section.
The first time you successfully install StopWatch for HubSpot, you’ll gain access to all app features as part of our 💥 14 day free trial period 💥. Once this free trial period has ended, you’ll need to choose and confirm your StopWatch for HubSpot subscription plan.You can compare all available subscription options on our Pricing page. If you select a paid subscription, you’ll need to confirm via our third-party payment provider, Stripe. Once you’ve successfully confirmed your subscription, you can manage it via our customer portal (powered by Stripe).
Links for each subscription option are available here. Multiple currency options are available, including AUD, USD, GBP, EUR, CAD, NZD
If you’ve chosen the 🤗 Free plan, all you’ll need to do to confirm your subscription is nominate your users via our admin app settings.
Please note, there will be no chance to change or rotate users at a later date. If you need other members of your team to use the app after having already nominated your users, you’ll need to upgrade to a paid subscription.
The StopWatch for HubSpot experience, and the quality of your time tracking data, relies heavily on your interaction with the features made available by the app.
We recommend tracking time via our App Cards and/or our Custom Workflow Actions only. We do not recommend creating or updating “Time Log” records manually or by any means other than interacting directly with StopWatch for HubSpot app features.
, the StopWatch and StopWatch (Preview) App Cards can be made available on HubSpot Custom Object views. If you’d like to learn more about using the StopWatch App Card with Custom Objects, please feel free to make a request via our support form.
In most cases, App Cards are hidden by default. You must follow the steps outlined below to add them to your HubSpot CRM Views.
How to add an App Card to a CRM View
1
Navigate to HubSpot Settings
Open your HubSpot account and click the icon in the top navigation bar.
2
Navigate to the relevant Object Type's settings page
Use the left sidebar to navigate to Data Management > Objects >
3
Navigate to the relevant CRM View
Click the Record Customization or Preview Customization tab, then find and click the relevant CRM View. If you only have 1 view, it’ll likely be called Default view.
4
Add the App Card to the CRM View
Hover over the position you’d like to add the App Card, then click the icon. Click into the Card library tab and then search for the relevant . If it’s not already added to the view, click Add card.
5
Reposition & Save
Reposition the App Card as desired, then click Save or Save and exit.
For example, to add the StopWatch App Card to your Contact right sidebar view:
StopWatch for HubSpot - Add the StopWatch App Card to a HubSpot CRM View
Your experience using the StopWatch, StopWatch (Preview) and StopWatch (Help Desk) App Cards should be largely identical. The only difference between these App Cards is where they can be placed.
To track time against the CRM record you are viewing (or previewing), use the ⏱️ Timer toggle visible at the top of the App Card.When you use a StopWatch App Card to track time against a HubSpot CRM record, the app creates/updates a “Time Log” record and associates it with you are tracking time against. You can view and navigate to your Time Log records using the right sidebar (see example screenshot below).
The StopWatch App Cards offer the ability to Quick Add a time tracking session. This is intended to be used in the following scenarios:
Scenario
Detail
1. ‘Batch’ / ‘end-of-day’ time tracking method
For customers who prefer or need to be able to input historic time tracking sessions manually, rather than inputting time tracking sessions in real-time via the ‘Timer’ toggle.
2. Forgotten to track time spent
For customers who may have forgotten to track time via the ‘Timer’ toggle and need to be able to manually input the forgotten time tracking session.
To use this feature, simply expand the Quick Add section, input all the relevant information relating to the time tracking session you’d like to record and click ‘Submit’.
Associate Engagements is a user-specific setting (disabled by default).
This feature is only available if the 1 Time Log Per Session user-specific setting is enabled. Review our App Settings section for more information.
You can associate time tracking sessions with specific HubSpot Engagements linked to the CRM record you’re viewing. The following HubSpot Engagement types are supported by this feature:
Tasks (including Subtasks)
Meetings
Calls
Simply check the Associate Engagements? checkbox in the App Card and select the relevant Engagement record(s) you’d like the time tracking session to be associated with. You can filter the list of available options by Engagements you own and/or Engagement Type. This feature is available when tracking time manually via the timer toggle, as well as via the Quick Add feature.
This feature unlocks powerful reporting and automation capabilities by enabling you to associate Time Logs with specific .For example, build custom reports to analyse your time spent on specific Tasks, Meetings and Calls, offering deeper insights into team productivity, project allocation and process efficiency. It also facilitates advanced automation workflows that can trigger based on time tracked against particular HubSpot Engagements, streamlining your operational processes and enhancing overall performance.
This feature is only available if the 1 Time Log Per Session user-specific setting is enabled. Review our App Settings section for more information.
If you no longer wish to submit a time tracking session after starting a timer, use the Cancel button to cancel the session. In the background, this deletes the relevant Time Log record that was created when you started the timer.
If you installed StopWatch for HubSpot prior to 1 April 2026, you may need to reauthenticate in order to gain access to this feature. To do this, simply install the app again (there’s no need to uninstall first). See the Installing StopWatch for HubSpot section for instructions.
Flagging a time tracking session as billable populates a number of Time Log properties that help you keep track of Billable Tracked Time vs. Total Tracked Time.💫 Unlimited subscribers also have access to the Billable Amount, Cost Amount and Margin Amount Time Log properties, which are automatically populated based on billable rates set by a StopWatch for HubSpot Admin user. This is intended to support common invoicing and workforce profitability analysis use cases.Within the Billable RatesApp Settings tab, app admins can choose between the following Billable Rate Modes:
👤 User-Based: billable rates are managed per HubSpot User
As much as possible, we recommend you avoid updating Time Logs manually
When selecting Time Log properties for your views, reports and general analysis, we recommend using the Tracked Time and Amount properties that are appeneded with “Calculated” (i.e. not the properties appended with “Legacy”). This is because the “Calculated” properties automatically update to reflect changes made to the corresponding Minutes and Rate properties. “Legacy” properties are only updated when a new time tracking session is submitted.
To decrease the likelihood of time tracking data quality issues for our customers, we generally recommend avoiding manually updating Time Log records. However, we understand that in some cases this may be unavoidable. the tracked time data stored on an individual Time Log record, there are a few options available to you.
Manage Time Log App Cards
1
Ensure the Manage Time Log and/or Manage Time Log (Preview) App Card(s) are added to the relevant CRM View(s), as outlined above
2
Navigate to the relevant Time Log record view or preview
3
Find the Manage Time Log or Manage Time Log (Preview) App Card and click Edit Time Log
4
Update the relevant input fields and click Save
Timesheets
Refer to the Editing Time Logs heading within the Timesheets section below
Direct Update of Time Log Properties
This is the riskiest of options available. If you must use this method, please exercise caution.
If you must directly update Time Log properties, please restrict these updates to the properties listed below. Any issues relating to changes made to properties not listed below will not be covered by standard StopWatch for HubSpot support:
Depending on your specific combination of StopWatch for HubSpot account and user-specific settings, the aggregation of and data contained within your Time Logs may vary. Expand the following sections for explanations of how Time Logs can vary depending on your settings:
Enabling this setting can unlock powerful Time Log segmentation capabilities
“1 Time Log Per Session” is an optional, user-specific setting. It is disabled by default and available only to 👥 Team and 💫 Unlimited subscribers.
Each submitted time tracking session results in 1 Time Log Record (i.e. no Time Log aggregation). This unlocks powerful segmentation capabilities by enabling users to set custom Time Log Titles, Categories and Descriptions.
By default, when time is tracked against a HubSpot CRM record via the StopWatch App Card, information about this tracked time is stored on an associated “Time Log” record. If you use only StopWatch for HubSpot app features for creating and managing Time Log records (as is recommended), there should exist in your HubSpot account 1 Time Log record per unique combination of the following variables:
Object Type (e.g. CONTACT)
Object/Record ID (e.g. 1234567890)
HubSpot User ID (e.g. 12345)
Example: CONTACT_1234567890_12345
These variables are used to construct the primary Time Log display property (StopWatch Record ID), for example CONTACT_1234567890_12345 (where CONTACT is the object type of the record that time is being tracked against, 1234567890 is the relevant Contact record ID and 12345 is the HubSpot user ID of the person tracking the time).
“Split Time Logs By Week” and “Split Time Logs By Month” are optional, user-specific settings. They are both disabled by default.
For any period of time where either of the optional, user-specific Split By Week or Split By Monthapp settings are enabled, there should exist in your HubSpot account 1 Time Log record per unique combination of the following variables:
Each Time Log record contains , reflecting a summary of all relevant time tracking sessions, with respect to the . This data is visible in the left sidebar on the Time Log record view (see screenshot below). The display of these properties can be customised within your HubSpot account settings.
Information relating to each individual time tracking “session” can be viewed as within the activity timeline of the relevant Time Log record (see image below).
These Notes are standard HubSpot Engagement records, of “Note” type. They are automatically generated by StopWatch for HubSpot based on interaction with our App Cards and/or Custom Workflow Actions. If the app encounters an issue when creating these Notes, this is treated as a non-critical error. As such, it’s possible that not all time tracking sessions will be represented as a Note in the Time Log activity timeline.
The Timesheet interface provides a weekly view of your relevant Time Log records, directly inside HubSpot.
The Timesheet displays Time Logs created while either of the following user-specific settings were enabled: 1 Time Log Per Session or Split Time Logs By Week.
The Timesheet always represents one HubSpot user at a time
By default, the Timesheet shows a weekly view. You can navigate between weeks using the arrow buttons near the , or use the date selector to jump to a specific week.In Grid view, click a date column header to focus the Timesheet on that specific day. In List view, click a value in the Date column to do the same.If a specific day has been selected, click Week view to return to the default weekly view.
The Timesheet can display Time Logs in either of the following modes:
Grouped Time Logs are grouped by the HubSpot CRM record that time has been tracked against
Individual Logs Each Time Log is displayed as its own row
Grouped mode is useful for reviewing total time tracked against a CRM record. Individual Logs mode is useful when you want to inspect or edit each Time Log individually.
The Tags column is intended to help you segment your Timesheet. Depending on the Time Log data, tags may include:
CRM object type, such as Deal, Company, Ticket etc.
Time Log Category
Billable Service Name
Whether the Time Log is Billable
Whether the Time Log’s timer is on
Use the Filters dropdown and/or Search input to constrain the displayed data accordingly.
If a timer is currently running for a Time Log, the Timesheet displays an ON status beside that Time Log’s display title, and a Timer On tag in the Tags column.
The headline metrics at the top of the Timesheet can be customised. Available metrics include:
Total Time
Billable Time
Billable %
Billable Amount
Cost Amount
Margin Amount
Margin %
You can optionally compare headline metrics against a previous period, such as the previous week, previous month, or previous year.The metric(s) displayed in the results table can also be changed. In Grid view, one table metric is displayed at a time. In List view, you can select multiple table metrics.
To open an edit Time Log modal, click a Time Log title, or a clickable metric value.If the selected value represents multiple Time Logs, you will be prompted to choose which Time Log you want to edit.From the edit Time Log modal, you can update:
Total tracked time
Billable tracked time
Billable rate
Cost rate
Start and stop date/time for 1 Time Log Per Session records
Time Logs with an active timer cannot be edited from the Timesheet. Stop the timer first, then use the refresh option in the modal to check whether the Time Log is ready to edit.
Click the copy/export button (looks like ) above the table to copy the currently visible Timesheet table in TSV format. You can paste this directly into spreadsheet tools such as Google Sheets or Microsoft Excel.Exported values are formatted for spreadsheet use:
Duration values are converted to hours, such as 1.5 for 1 hour 30 minutes.
Percentage values are converted to decimals, such as 0.9 for 90%.
Currency values are exported as numbers, with the currency unit included in the column heading.
This feature is only available to our 💫 Unlimited subscribers. Information about our subscription options is available on our Pricing page.
To use this feature, specific users must first be nominated by a StopWatch for HubSpot admin. Admins can manage their Web UI Users via the admin app settings.
Log in to StopWatch for HubSpot’s Web UI
Our Web UI allows your team to track time against HubSpot CRM records, without needing to log into HubSpot.This is particularly useful for team members who aren’t always at their desk, but still need to track their time. It’s available via any web browser, so you can even track time on your phone.
To access this feature, you’ll need to login here (a link is sent to the supplied email address). You can also get there via the “Web Login” button on our app homepage.Once you’re in, follow the prompts to find the HubSpot CRM record you’re wanting to track time against, and then submit your time tracking session.
This feature is available to 👥 Team and 💫 Unlimited subscribers only
After enabling this feature, our App Events may not appear in your HubSpot Portal immediately. Please allow up to 24 hours for App Events and related features to become visible. If you don’t see our App Events after this time, please submit a support request.
StopWatch for HubSpot supports App Events for time tracking sessions. This is an , controlled via the Admin App SettingsWhen enabled, App Events are logged within the relevant activity timeline for each submitted time tracking session. This makes it possible to build HubSpot Workflows and Custom Reports based on the submission of individual time tracking sessions.
By default, App Events are often hidden from the activity timeline. You must manually add them to the relevant activity timeline view by clicking Activity > Integrations. See the screenshot below for reference.
This feature is available when tracking time against the HubSpot CRM object types listed below. All time tracking are supported.
Only relevant to customers using App Objects Mode. If you’re using the legacy Custom Objects Mode, you can configure webhooks directly via native HubSpot features.
StopWatch for HubSpot supports Webhook subscriptions for time tracking sessions. This is an , controlled via the Admin App SettingsWhen enabled, webhook requests are sent to a specified target URL when Time Logs are created and when time tracking sessions are submitted. This makes it possible to build push-based integrations with external systems and build custom automation workflows.
Time Log Creation
When a Time Log is created, a webhook is triggered, sending a request to the configured target URL with a request body that follows the following structure:
{ "eventId": 1122334455, // unique identifier for the webhook event "subscriptionId": 123456789, // unique identifier for the webhook subscription that triggered the event "portalId": 11111111, // unique identifier for the HubSpot Portal where the event occurred "appId": 552213, // unique identifier for the app that triggered the event (i.e. StopWatch for HubSpot) "occurredAt": 1781663476554, // unix timestamp in milliseconds representing when the event occurred "subscriptionType": "object.creation", // type of event that triggered the webhook "attemptNumber": 0, // number of attempts made to deliver the webhook (starts at 0 for the first attempt) "objectId": 9988776655, // unique identifier for the Time Log record that triggered the event "objectTypeId": "1-5233895", // unique identifier for the Time Log object type in HubSpot "changeFlag": "CREATED", // type of change that occurred to trigger the event "changeSource": "INTEGRATION", // source of the change that triggered the event "sourceId": "552213" // unique identifier for the source of the change}
Time Tracking Session Submissions
When a time tracking session is submitted, a webhook is triggered, sending a request to the configured target URL with a request body that follows the following structure:
{ "eventId": 1122334455, // unique identifier for the webhook event "subscriptionId": 123456789, // unique identifier for the webhook subscription that triggered the event "portalId": 11111111, // unique identifier for the HubSpot Portal where the event occurred "appId": 552213, // unique identifier for the app that triggered the event (i.e. StopWatch for HubSpot) "occurredAt": 1781662300785, // unix timestamp in milliseconds representing when the event occurred "subscriptionType": "object.propertyChange", // type of event that triggered the webhook "attemptNumber": 0, // number of attempts made to deliver the webhook (starts at 0 for the first attempt) "objectId": 9988776655, // unique identifier for the Time Log record that triggered the event "objectTypeId": "1-5233895", // unique identifier for the Time Log object type in HubSpot "propertyName": "a552213_last_end_date", // name of the Time Log property that was changed "propertyValue": "1781662297005", // new value of the changed property "changeSource": "INTEGRATION", // source of the change that triggered the event "sourceId": "552213", // unique identifier for the source of the change "isSensitive": false // indicates whether the changed property contains sensitive information}
Time Log Deletion
When a Time Log is deleted, a webhook is triggered, sending a request to the configured target URL with a request body that follows the following structure:
{ "eventId": 1122334455, // unique identifier for the webhook event "subscriptionId": 123456789, // unique identifier for the webhook subscription that triggered the event "portalId": 11111111, // unique identifier for the HubSpot Portal where the event occurred "appId": 552213, // unique identifier for the app that triggered the event (i.e. StopWatch for HubSpot) "occurredAt": 1781663476554, // unix timestamp in milliseconds representing when the event occurred "subscriptionType": "object.deletion", // type of event that triggered the webhook "attemptNumber": 0, // number of attempts made to deliver the webhook (starts at 0 for the first attempt) "objectId": 9988776655, // unique identifier for the Time Log record that triggered the event "objectTypeId": "1-5233895", // unique identifier for the Time Log object type in HubSpot "changeFlag": "DELETED", // type of change that occurred to trigger the event "changeSource": "INTEGRATION", // source of the change that triggered the event "sourceId": "552213" // unique identifier for the source of the change}
Return a 2xx response code from your server within 15 seconds to acknowledge successful receipt of the webhook request
When you enable the Webhooks setting, you’ll be allocated a request Signing Secret. This secret can be used to verify that incoming webhook requests were sent by StopWatch for HubSpot.
Webhook Request Headers
Each webhook request includes headers you can use to verify that the request came from StopWatch for HubSpot:
X-StopWatch-Signature e.g. v1=abc123
X-StopWatch-Timestamp e.g.
X-StopWatch-Webhook-Id e.g.
Verification Steps
1
Read the raw request body
Read the raw request body exactly as received. Do not parse the body as JSON or in any other way before using it to calculate the signature.
2
Check the timestamp
Check the X-StopWatch-Timestamp header to ensure the request is recent. Reject the request if the timestamp is more than 5 minutes old to prevent replay attacks.
3
Create an HMAC-SHA256 signature
Create an HMAC-SHA256 signature using your Webhook Signing Secret and the raw request body. The signature should be in the format: v1={hexdigest}, where {hexdigest} is the hexadecimal representation of the HMAC-SHA256 digest.
4
Compare signatures
Compare your calculated signature with the value in the X-StopWatch-Signature header. Use a constant-time comparison method to prevent timing attacks.
5
Reject invalid requests
If the signatures do not match, reject the request with an appropriate HTTP status code (e.g. 401 Unauthorized).
Example Webhook Request Validation Code
Example Webhook Request Validation
import hmacimport hashlibimport timefrom flask import Flask, request, abortSECRET = "{{your_webhook_signing_secret}}"def validate_stopwatch_webhook(headers, raw_body: bytes) -> bool: signature_header = headers.get("X-StopWatch-Signature", "") timestamp_header = headers.get("X-StopWatch-Timestamp", "") if not signature_header.startswith("v1="): return False try: timestamp_ms = int(timestamp_header) except ValueError: return False # Reject requests older than 5 minutes. now_ms = int(time.time() * 1000) if abs(now_ms - timestamp_ms) > 5 * 60 * 1000: return False received_signature = signature_header.removeprefix("v1=") # Use the exact raw request body bytes, not parsed JSON. expected_signature = hmac.new( SECRET.encode("utf-8"), raw_body, hashlib.sha256, ).hexdigest() return hmac.compare_digest(expected_signature, received_signature)app = Flask(__name__)# Example endpoint to receive StopWatch for HubSpot webhooks@app.post("/catch-stopwatch-webhook")def catch_stopwatch_webhook(): raw_body = request.get_data() if not validate_stopwatch_webhook(request.headers, raw_body): abort(401) event = request.get_json() # Process event here. return {"ok": True}, 200
Each Time Log record created via interaction with the StopWatch App Card is automatically assigned a HubSpot “Owner”, reflecting the HubSpot user who is tracking the time. This is also the case for Time Logs created via the app’s Custom Workflow Actions that are not designated as Workflow-Managed.The inclusion of this feature within StopWatch for HubSpot is designed to allow for more powerful reporting and automation when working with Time Log records.
Among other benefits, record ownership of Time Logs allows for:
Dynamic filtering within reports, and
Subsequent record ownership assignment within workflows
By default, if a record of is assigned an Owner, the relevant HubSpot user is sent an email notification, alerting them to their ownership of the record.This email notification can be managed by users within HubSpot’s settings:
1
Navigate to HubSpot Settings
Open your HubSpot account and click the icon in the top navigation bar.
2
Navigate to User-Specific Notifications
Via the left sidebar, navigate to ‘Your Preferences’ > ‘Notifications’
3
Find 'Custom Objects' and Disable the Notification
Locate ‘Custom Objects’ in the centre panel within the ‘Email & Desktop’ tab. Disable the email notification relating to ‘Custom object assigned to you’.
Unfortunately, this notification can only be managed collectively across all custom objects within a HubSpot account (i.e. it’s not possible to manage this notification granularly, per custom object type). Rather than turning them off in HubSpot, alternatively you could consider configuring your email inbox filters / settings to more selectively “hide” or “delete” these notification emails.
HubSpot Custom Reports and Workflows are restricted to certain HubSpot subscription levels. Please review the previously linked HubSpot Knowledge Base Articles to confirm whether you have access to these features.
Once you have collected some time tracking data in your HubSpot account (in the format of Time Log records), you’re likely going to want to extract some value from it.
You can use your Time Logs as you would any other CRM object type within your HubSpot account. With your Time Logs as the centrepiece, we recommend creating or updating your existing HubSpot reports/dashboards to better understand how your team is collectively spending their time across Deals, Contact, Companies, Tickets, Appointments, Courses, Listings, Services and/or Projects.To help get the ball rolling, below are a couple of screenshots of example HubSpot reports leveraging data made available by StopWatch for HubSpot.
This feature is available to 💫 Unlimited subscribers only
💫 Unlimited subscribers have access to 3 custom workflow actions provided by StopWatch for HubSpot. There’s a daily usage cap of 1,000 custom workflow action requests . Any requests made over this usage cap will be rejected by the app.The great majority of requests will be processed within 5 minutes of being received. If you require more requests per day or faster processing times, please submit a support request.
Title
Detail
Start Timer
This custom workflow action starts a StopWatch for HubSpot Timer, relevant to the record enrolled in the given workflow. The “Start Timer” action includes an option to tag a Time Log as being ‘Workflow-Managed’. As a general rule, you should use this feature when the time being tracked does not directly relate to the Owner of the given CRM record.
Stop Timer
This custom workflow action stops a StopWatch for HubSpot Timer, relevant to the record enrolled in the given workflow. If you’ve tagged the corresponding “Start Timer” action as being ‘Workflow-Managed’, be sure to use the exact same tag within the “Stop Timer” action. Failure to do so could lead to errors relating to the app not being able to find the corresponding Time Log. The “Stop Timer” action also includes an option to exclude out of office hours, with configurable settings including the ability to specify your timezone and the start/end hours of your standard work day. This allows for the support of common sales and service time tracking use cases involving the analysis of how long CRM records spend in a given stage/status, excluding out of office hours.
Stop Timer on Existing Time Log
[Time Log-based Workflows Only] This custom workflow action stops the StopWatch for HubSpot Timer directly on the Time Log enrolled in the given workflow. Please note, for installs using the app in the legacy Custom Objects mode, this feature can only be made available on a case-by-case basis. If you’d like to request access, please submit a support request
These custom workflow actions come with settings that offer far greater time tracking flexibility, in comparison to using the StopWatch App Card feature alone. For example, it’s possible to configure workflows that track the time an individual record spends within a given object stage (e.g. Deal Stage, Contact Lifecycle Stage, Ticket Status, Listing Stage, Service Stage), excluding out of office hours.
To learn more about how to use your Time Logs in HubSpot’s custom reporting and automation tools, please review the previously linked HubSpot Knowledge Base Articles.
Only admins can edit the account-specific settings. To access StopWatch for HubSpot settings:
1
Navigate to HubSpot Settings
Open your HubSpot account and click the icon in the top navigation bar.
2
Navigate to Connected Apps
Via the left sidebar, navigate to Account Management > Integrations > Connected Apps
3
Find & Click 'StopWatch'
From the list of apps connected to your HubSpot account, find and click StopWatch. Then click through to the Settings tab.
Admin
User
Categories
Billable Rates
Please refer to the below table for an explanation of all the account-specific settings available within the “Admin Settings” tab.
Setting
Default
Description
Nominated Users
Primary Admin
Only visible to our 🤗 Free subscribers. A list of up to 3 nominated users with access to app features. User rotation is not supported. Once you successfully nominate 3 users, you will not be able to make further changes.
Web UI Users
None
Only available to our 💫 Unlimited subscribers. A list of nominated users with access to our Web UI feature.
StopWatch API Key
None
Manage your StopWatch API authentication token. Only available to our 💫 Unlimited subscribers and only visible to Primary Admins.
Webhooks
OFF
Subscribe to Time Log creation and time tracking session submission webhook events.
Lockdown User Settings
OFF
If enabled, prevents non-admins from modifying their own user-specific settings.
Lockdown User Settings Exceptions
None
Indicates which users should be exempt from the ‘Lockdown User Settings’ restriction (described above). This gives specific non-admins the ability to modify their own user-specific settings, while preventing all other non-admins from doing so. Only available if ‘Lockdown User Settings’ is enabled.
Auto Start Override
OFF
When enabled, the Auto Start Timer feature is engaged whenever a user loads a CRM record view containing the StopWatch App Card, provided the timer was last stopped more than 1 minute ago. This removes the default requirement for a prior time tracking session to have been logged against the given CRM record. This makes it possible to use the Auto Start Timer and 1 Time Log Per Session features concurrently.
App Events for Time Tracking Sessions
OFF
Only available to our 👥 Team and 💫 Unlimited subscribers. When enabled, App Events are logged within the relevant HubSpot CRM record’s activity timeline for each submitted time tracking session. This makes it possible to build HubSpot Workflows and Reports based on the submission of individual time tracking sessions.
Please refer to the below table for an explanation of all the user-specific settings available within the “User Settings” tab.
Setting
Default
Description
Admin User
OFF
Visible to admins only If enabled, this user is assigned admin privileges. Only existing admins can assign/remove admin privileges to/from other users. The cannot have their admin privileges removed within the app settings. To change the Primary Admin user, please submit a support request.
1 Time Log Per Session
OFF
If enabled, each time tracking session is represented as its own Time Log record. Enables users to specify custom Time Log ‘Titles’, ‘Categories’ and ‘Descriptions’, unlocking powerful segmentation capabilities for your time tracking data. Also enables analysis relating to .
Associate Engagements Option
OFF
Only available if the 1 Time Log Per Session setting is enabled. Enables the selective association between Time Logs and one or more related HubSpot Engagements (e.g. Tasks, Meetings and Calls). This makes it possible to create custom reports displaying time tracked against Engagements.
Split Time Logs By Week
OFF
Allows for time tracked via the StopWatch App Card and Workflow Actions to be segmented by the week of a given year. This is useful for reporting and automation use cases where tracked time needs to be segmented by individual weeks of a given year (e.g. ‘Last week’).
Split Time Logs By Month
OFF
Allows for time tracked via the StopWatch App Card and Workflow Actions to be segmented by “Month + Year”. This is useful for reporting and automation use cases where tracked time needs to be segmented by month/year combination (e.g. March 2026).
Auto Start Timer
OFF
If enabled, starts the timer automatically when an individual HubSpot CRM record view is loaded, assuming all of the following conditions are met:
1. The “StopWatch” App Card is present on the given record view. 2. You’ve already tracked time against the given HubSpot CRM record (excl. 1 Time Log Per Session records). The first time tracking session per record (and per period, if you’ve enabled either “Split By Week” or “Split By Month”) must be submitted manually. This condition can be bypassed via the Auto Start Override adming setting. 3. Timer last stopped >1 minute ago. This is to avoid unintentionally restarting the timer soon after having stopped it. This requirement does not apply if you have enabled both the 1 Time Log Per Session user setting and Auto Start Override admin setting.
Billable By Default
OFF
If enabled, all time tracking sessions are flagged as billable by default. If the user has the ‘Billable Time Option’ enabled (see below), they can manually override the billable status for each individual time tracking session.
Billable Time Option
OFF
Allows for time tracked via the StopWatch App Card to be segmented into the groups “Billable” and “Total”. This is particularly useful for reporting and automating use cases where tracked time needs to be segmented as “Billable”, “Total” or “Non-Billable” (i.e. “Total” minus “Billable”).
Round Up Time Tracking Sessions
Disabled
Allows for time tracked via the StopWatch App Card to be rounded up to the nearest 1, 5, 6, 15, 30 or 60 minute interval.
Quick Add Session Increments
Default
Configure the duration increments available when submitting a ‘Quick Add’ time tracking session (in ‘Simple’ submission mode).
Show ‘Team Summary Data’ Section
OFF
If enabled, the aggregated time tracked by all team members and other useful summary data is displayed in the StopWatch App Card (relevant to the CRM record being viewed).
Show ‘Quick Add’ Feature
ON
Controls whether the ‘Quick Add’ feature is displayed within the StopWatch App Card.
Preferred Date Format
Default
Customise the date format used in certain app features, including the Start Date Quick Add input field. Medium and Long date format options are .
Max One Active Timer
OFF
Controls whether only one timer can be active at a time. If enabled, manually starting a timer via the StopWatch App Card will automatically stop any other active timers belonging to the given user.
Time Log Categories can only be selected by users who have the ‘1 Time Log Per Session’ setting enabled (explained in the ‘User Settings’ tab).
Manage the categories that are available when creating Time Logs. There are a handful of default categories that are automatically available upon installing the app. These categories are customisable — it’s possible to delete existing and create new categories for your team to use when they submit time tracking sessions.
Billable Rates are only available for 💫 Unlimited subscribers
Manage the hourly billable rate and hourly cost used by StopWatch when calculating the Time Log Billable Amount, Cost Amount and Margin Amount properties.Admins can choose between:
👤 User-Based: billable rates are managed per HubSpot User
💼 Service-Based: billable rates are managed per
The Service selector in the StopWatch App Card is only shown when all of the following conditions are true:
Billable Rate Type is set to Service-Based
At least 1 Service has been configured
The user’s 1 Time Log Per Session setting is enabled
If you need to uninstall the app from your HubSpot account, this can be performed via HubSpot’s Connected Apps settings page.
1
Navigate to HubSpot Settings
Open your HubSpot account and click the icon in the top navigation bar.
2
Navigate to Connected Apps
Via the left sidebar, navigate to Account Management > Integrations > Connected Apps
3
Find 'StopWatch' and click 'Actions''
From the list of apps connected to your HubSpot account, find StopWatch and click the Actions dropdown button. Then click Uninstall.
Once the app is uninstalled, your HubSpot account would no longer be connected to the StopWatch for HubSpot app. As such, you would no longer be able to use any StopWatch for HubSpot features. However, any existing will remain stored within your HubSpot account.Additionally, any existing HubSpot Workflows leveraging will be flagged with a Changes needed (or similar) alert. Please note, any such workflow executions occurring after the app has been uninstalled will result in error.StopWatch for HubSpot features and associated data are contained entirely within HubSpot. As such, uninstalling the app is the only action required by you to effectively disconnect your HubSpot account from the app. If you have any questions regarding the disconnection of your HubSpot account with the app, please feel free to submit a support request.
StopWatch for HubSpot is created and managed by Thread Integrations, a small Australian business providing expert system integration, software development & analytics services.