> ## Documentation Index
> Fetch the complete documentation index at: https://docs.threadi.au/llms.txt
> Use this file to discover all available pages before exploring further.

# StopWatch for HubSpot

> This **App Usage Guide** aims to help you get up and running with **StopWatch for HubSpot**, an intuitive time tracking app designed specifically for HubSpot.

<Tip>Since September 2025, **StopWatch for HubSpot** has been <Tooltip tip="The app no longer requires your HubSpot Portal to have access to Custom Objects"><u>**compatible with all HubSpot Portals**</u></Tooltip></Tip>
<Check>**StopWatch for HubSpot** has been <Icon icon="badge-check" /> [Certified by HubSpot](https://ecosystem.hubspot.com/marketplace/listing/hubclock-by-thread-integrations-552213) since July 2024 and was named an <Icon icon="award" /> [Essential App for Customer Service](https://community.hubspot.com/t/updated-in-the-app-marketplace-essential-apps-for-customer-service/129698) in 2025.</Check>

## App Demo Videos

<Tabs>
  <Tab title="Usage Demo" icon="book">
    <Frame caption="StopWatch for HubSpot - App Usage Demo">
      <iframe className="w-full aspect-video rounded-xl" src="https://www.youtube-nocookie.com/embed/A0peNvimE0k?si=rQUdBcDUXOwEqkwS" title="StopWatch for HubSpot - App Usage Demo" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen />
    </Frame>
  </Tab>

  <Tab title="App Card & Settings" icon="timer">
    <Frame caption="StopWatch for HubSpot - App Card & App Settings Features">
      <iframe className="w-full aspect-video rounded-xl" src="https://www.youtube-nocookie.com/embed/BGjVctJ7ayA?si=4xmnJrb8azDJyHlY" title="StopWatch for HubSpot - App Card & App Settings Features" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen />
    </Frame>
  </Tab>

  <Tab title="Automation" icon="bolt-auto">
    <Frame caption="StopWatch for HubSpot - Custom Workflow Actions Demo (Start Timer & Stop Timer)">
      <iframe className="w-full aspect-video rounded-xl" src="https://www.youtube-nocookie.com/embed/Vl-ai968Nqs?si=SyzcLmwXZbiqSU3g" title="StopWatch for HubSpot - Custom Workflow Actions Demo (Start Timer & Stop Timer)" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen />
    </Frame>
  </Tab>

  <Tab title="Reporting" icon="chart-simple">
    <Frame caption="StopWatch for HubSpot - Example User Tracked Time vs. Monthly Capacity Report Creation">
      <iframe className="w-full aspect-video rounded-xl" src="https://www.youtube-nocookie.com/embed/HPRxQQ0W_fI?si=Z3nVSH2FMuvlg-fI" title="StopWatch for HubSpot - Example User Tracked Time vs. Monthly Capacity Report Creation" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen />
    </Frame>
  </Tab>
</Tabs>

<br />

## 1. Installing StopWatch for HubSpot

<Accordion title="Installing StopWatch for HubSpot" icon="desktop-arrow-down" iconType="duotone">
  <Warning>
    If you're already using the app in our legacy **Custom Objects mode**, please note that reinstallation will automatically switch your configuration to **App Objects mode**. If your using **Custom Objects mode** and need to reinstall the app, please submit a [support request](https://www.threadi.au/support?app_name=stopwatch) so we can assist you.
  </Warning>

  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.

  <Columns cols={2}>
    <Card icon="hubspot" type="brands" href="https://ecosystem.hubspot.com/marketplace/listing/hubclock-by-thread-integrations-552213" arrow={true} color="#FF7A59">
      Install via the HubSpot App Marketplace
    </Card>

    <Card icon="link" iconType="duotone" href="https://app.hubspot.com/oauth/authorize?client_id=028d1e7a-3622-4421-841b-228cc120088a&redirect_uri=https%3A%2F%2Fstopwatch.threadi.au%2Finstall&scope=crm.objects.owners.read%20crm.objects.deals.read%20crm.objects.services.read%20crm.objects.contacts.read%20crm.objects.courses.read%20crm.objects.companies.read%20crm.objects.listings.read%20crm.objects.appointments.read%20crm.objects.projects.read%20tickets%20automation%20oauth%20crm.app.schemas.a552213_time_log.properties.write%20crm.app.schemas.a552213_time_log.read%20crm.app.objects.a552213_time_log.view%20crm.app.objects.a552213_time_log.create%20crm.app.objects.a552213_time_log.edit%20crm.app.objects.a552213_time_log.delete%20timeline%20crm.objects.users.read&state=ao" arrow={true}>
      Install via direct OAuth link
    </Card>
  </Columns>

  <Note>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](#user-settings). If you need to update your primary admin, please submit a [support request](https://www.threadi.au/support?app_name=stopwatch)</Note>

  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](https://www.threadi.au/support?app_name=stopwatch). For reference, we've included some screenshots of the installation process below.

  <Info>
    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](mailto:support@threadi.au)
  </Info>

  ### App Installation Process Screenshots

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-install-1.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=ed0b21dfab0965c915b955adc24a1d10" width="100%" data-path="images/stopwatch/guide-install-1.png" />
  </Frame>

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-install-2.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=98808ff988239c2099de1056cf681333" width="100%" data-path="images/stopwatch/guide-install-2.png" />
  </Frame>

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-install-3.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=fb0e8f897280e8ec3b4c3c407231e570" width="100%" data-path="images/stopwatch/guide-install-3.png" />
  </Frame>

  <Columns cols={2}>
    <Card icon="chevron-up">
      [Top of section](#installing-stopwatch-for-hubspot)
    </Card>

    <Card icon="chevrons-up">
      [Top of page](#)
    </Card>
  </Columns>
</Accordion>

## 2. Subscriptions and Nominating Users

<Accordion title="Subscriptions & Nominating Users" icon="wallet" iconType="duotone">
  <Card icon="wallet" iconType="duotone" href="/pricing?app=stopwatch" arrow={true} cta="View Subscription Options" color="#FF7A59">
    Free trial ended? Create a subscription to continue enjoying access to all app features
  </Card>

  <Callout icon="lock" color="#10B981" iconType="regular">
    <strong>Price Lock Promise</strong>: In March 2026, we committed to never raising prices for <Tooltip tip="Limited to subscriptions created from March 2026 onwards">active subscription holders</Tooltip>. As long as your subscription remains active, your price is locked in.
  </Callout>

  <Note>
    Please ensure you've successfully [installed **StopWatch for HubSpot**](https://stopwatch.threadi.au/) within your HubSpot account before proceeding with any steps outlined in this section.
  </Note>

  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](/pricing?app=stopwatch). 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](https://billing.stripe.com/p/login/3csdSc2wP68ybTi144) (powered by **Stripe**).

  <Info>Links for each subscription option are available [here](/pricing?app=stopwatch). Multiple currency options are available, including AUD, USD, GBP, EUR, CAD, NZD</Info>

  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](#app-settings).

  <Info>
    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.
  </Info>

  <Columns cols={2}>
    <Card icon="chevron-up">
      [Top of section](#subscriptions-and-nominating-users)
    </Card>

    <Card icon="chevrons-up">
      [Top of page](#)
    </Card>
  </Columns>
</Accordion>

## 3. App Cards

<Accordion title="App Cards" icon="timer" iconType="regular">
  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.

  <Warning>
    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.
  </Warning>

  <Callout icon="link" iconType="duotone">
    **Feature Quick Links**

    * <Icon icon="cards-blank" iconType="duotone" /> [Our App Cards](#our-app-cards)
    * <Icon icon="table-columns-add-after" iconType="duotone" /> [Adding App Cards to HubSpot CRM Views](#adding-app-cards-to-hubspot-crm-views)
    * <Icon icon="timer" iconType="duotone" /> [The "StopWatch" App Cards](#the-“stopwatch”-app-cards)
      * <Icon icon="plus" iconType="duotone" /> [Quick Add](#quick-add)
      * <Icon icon="list-check" iconType="duotone" /> [Associate Engagements](#associate-engagements)
      * <Icon icon="x" iconType="duotone" /> [Cancel a Time Tracking Session](#cancel-a-time-tracking-session)
      * <Icon icon="money-bill-1-wave" iconType="duotone" /> [Billable Time](#billable-time)
    * <Icon icon="pen-to-square" iconType="duotone" /> [Manually Adjusting Time Logs](#manually-adjusting-time-logs)
  </Callout>

  ### <Icon icon="cards-blank" iconType="duotone" /> Our App Cards

  | Name                                 | Object Type(s)                                                                                                                                                     | View Location                                          |
  | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------ |
  | **StopWatch**                        | <ul><li>Contacts</li><li>Companies</li><li>Deals</li><li>Tickets</li><li>Projects</li><li>Appointments</li><li>Courses</li><li>Listings</li><li>Services</li></ul> | <Tooltip tip="Right Sidebar">CRM Record Page</Tooltip> |
  | **StopWatch <br />(Preview)**        | <ul><li>Contacts</li><li>Companies</li><li>Deals</li><li>Tickets</li><li>Projects</li><li>Appointments</li><li>Courses</li><li>Listings</li><li>Services</li></ul> | CRM Record Preview                                     |
  | **StopWatch <br />(Help Desk)**      | <ul><li>Tickets</li></ul>                                                                                                                                          | Help Desk                                              |
  | **Manage Time Log**                  | <ul><li>Time Logs</li></ul>                                                                                                                                        | <Tooltip tip="Right Sidebar">CRM Record Page</Tooltip> |
  | **Manage Time Log <br /> (Preview)** | <ul><li>Time Logs</li></ul>                                                                                                                                        | CRM Record Preview                                     |

  <Info>
    <Tooltip tip="With a little custom development work and only in certain circumstances">Upon special request</Tooltip>, 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](https://www.threadi.au/support?app_name=stopwatch).
  </Info>

  ### <Icon icon="table-columns-add-after" iconType="duotone" /> Adding App Cards to HubSpot CRM Views

  <Note>
    In most cases, **App Cards are hidden by default**. You must follow the steps outlined below to add them to your HubSpot CRM Views.
  </Note>

  <Accordion title="How to add an App Card to a CRM View" icon="circle-info">
    <Steps>
      <Step title="Navigate to HubSpot Settings">
        Open your HubSpot account and click the <Icon icon="gear" /> icon in the top navigation bar.
      </Step>

      <Step title="Navigate to the relevant Object Type's settings page">
        Use the left sidebar to navigate to Data Management > Objects > <Tooltip tip="The type of object you want to add the App Card to. For example, Tickets."><u>*Object Type*</u></Tooltip>
      </Step>

      <Step title="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**.
      </Step>

      <Step title="Add the App Card to the CRM View">
        Hover over the position you'd like to add the App Card, then click the <Icon icon="plus" /> icon. Click into the *Card library* tab and then search for the relevant <Tooltip tip="For example, try searching for 'StopWatch' or 'Time Log'">App Card Name</Tooltip>. If it's not already added to the view, click **Add card**.
      </Step>

      <Step title="Reposition & Save">
        Reposition the App Card as desired, then click **Save** or **Save and exit**.
      </Step>
    </Steps>
  </Accordion>

  For example, to add the **StopWatch** App Card to your **Contact** right sidebar view:

  <Frame caption="StopWatch for HubSpot - Add the StopWatch App Card to a HubSpot CRM View">
    <iframe className="w-full aspect-video rounded-xl" src="https://www.youtube-nocookie.com/embed/UcbGziHgsnE?si=L6Ees0lD1VS9P94BS" title="StopWatch for HubSpot - Add the StopWatch App Card to a HubSpot CRM View" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen />
  </Frame>

  ### <Icon icon="timer" /> The "StopWatch" App Cards

  <Info>
    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.
  </Info>

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-stopwatch-2.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=47d85f91a6be0f6346c0e182fda7856f" width="100%" data-path="images/stopwatch/guide-stopwatch-2.png" />
  </Frame>

  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 <Tooltip tip="i.e. an individual Contact, Company, Deal, Ticket, Appointment, Course, Listing, Service or Project">the record</Tooltip> you are tracking time against. You can view and navigate to your Time Log records using the right sidebar (see example screenshot below).

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-timelog-1.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=4ea8b8da8e1db7b36a0e870518ba220a" width="100%" data-path="images/stopwatch/guide-timelog-1.png" />
  </Frame>

  #### <Icon icon="plus" /> Quick Add

  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 **<Icon icon="plus" /> Quick Add** section, input all the relevant information relating to the time tracking session you'd like to record and click 'Submit'.

  #### <Icon icon="list-check" iconType="duotone" /> Associate Engagements

  <Note>
    * **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](#app-settings) section for more information.
  </Note>

  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:

  <Card>
    * Tasks (including Subtasks)
    * Meetings
    * Calls
  </Card>

  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.

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/RiExhPaJpCDswgdA/images/stopwatch/guide-stopwatch-4.png?fit=max&auto=format&n=RiExhPaJpCDswgdA&q=85&s=1aec3331403eb22d6b836a47a652ea7d" width="66%" data-path="images/stopwatch/guide-stopwatch-4.png" />
  </Frame>

  This feature unlocks powerful reporting and automation capabilities by enabling you to associate **Time Logs** with specific **<Tooltip tip="e.g. Tasks, Meetings, Calls">HubSpot Engagements</Tooltip>**.

  For example, [build custom reports](https://knowledge.hubspot.com/reports/create-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](https://knowledge.hubspot.com/workflows/create-workflows) that can trigger <Tooltip tip="e.g. notifications, follow-ups, escalations">actions</Tooltip> based on time tracked against particular HubSpot Engagements, streamlining your operational processes and enhancing overall performance.

  <Info>
    * This feature is not currently available within [**StopWatch Web UI**](#web-ui)
    * A maximum of 500 records per Engagement type (i.e. Tasks, Meetings, Calls) are made available for selection
  </Info>

  #### <Icon icon="x" /> Cancel a Time Tracking Session

  <Note>
    This feature is only available if the **1 Time Log Per Session** user-specific setting is enabled. Review our [App Settings](#app-settings) section for more information.
  </Note>

  If you no longer wish to submit a time tracking session after starting a timer, use the <Badge color="red" size="md" icon="x">Cancel</Badge> button to cancel the session. In the background, this deletes the relevant Time Log record that was created when you started the timer.

  <Info>
    If you installed **StopWatch for HubSpot** prior to <Badge color="yellow">1 April 2026</Badge>, 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](#installing-stopwatch-for-hubspot) for instructions.
  </Info>

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/tjD-EiuKeGVxuIBt/images/stopwatch/guide-stopwatch-3.png?fit=max&auto=format&n=tjD-EiuKeGVxuIBt&q=85&s=38ee2eb233f8746d18224a22430bd409" width="66%" data-path="images/stopwatch/guide-stopwatch-3.png" />
  </Frame>

  #### <Icon icon="money-bill-1-wave" iconType="duotone" /> Billable Time

  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 Rates** [App Settings](#app-settings) tab, app admins can choose between the following **Billable Rate Modes**:

  <Columns cols={2}>
    <Card>
      * **👤 User-Based**: billable rates are managed per HubSpot User
    </Card>

    <Card>
      * **💼 Service-Based**: billable rates are managed per <Tooltip tip="As defined by app admins">Service</Tooltip>
    </Card>
  </Columns>

  <Frame caption="StopWatch for HubSpot - 'Billable Amount' Demo">
    <iframe className="w-full aspect-video rounded-xl" src="https://www.youtube-nocookie.com/embed/rcCMfKlSMKI?si=ZuuUesmUE_idIs3P" title="StopWatch for HubSpot - 'Billable Amount' Demo" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen />
  </Frame>

  ### <Icon icon="pen-to-square" /> Manually Adjusting Time Logs

  <Warning>
    As much as possible, we recommend you avoid updating Time Logs manually
  </Warning>

  <Note>
    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.
  </Note>

  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. <Tooltip tip="e.g. if you accidentally left a timer running">If you must adjust</Tooltip> the tracked time data stored on an individual Time Log record, there are a few options available to you.

  <Accordion title="Manage Time Log App Cards" icon="cards-blank" iconType="duotone">
    <Frame>
      <img src="https://mintcdn.com/threadintegrations/JH9okhfNp87U26i0/images/stopwatch/guide-manage-time-log-card-preview-1.png?fit=max&auto=format&n=JH9okhfNp87U26i0&q=85&s=7aae0adb438759f4cda99a10f993bc9d" width="100%" data-path="images/stopwatch/guide-manage-time-log-card-preview-1.png" />
    </Frame>

    <Steps>
      <Step>
        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](#app-cards:how-to-add-an-app-card-to-a-crm-view)
      </Step>

      <Step>
        Navigate to the relevant **Time Log** record view or preview
      </Step>

      <Step>
        Find the **Manage Time Log** or **Manage Time Log (Preview)** App Card and click <Icon icon="pencil" iconType="duotone" /> **Edit Time Log**
      </Step>

      <Step>
        Update the relevant input fields and click <Icon icon="floppy-disk" iconType="duotone" /> **Save**
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Timesheets" icon="table" iconType="duotone">
    <Info>
      Refer to the **Editing Time Logs** heading within the [**Timesheets**](#timesheets-1) section below
    </Info>
  </Accordion>

  <Accordion title="Direct Update of Time Log Properties" icon="warning">
    <Warning>
      This is the riskiest of options available. If you must use this method, please exercise caution.
    </Warning>

    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**:

    * Total Tracked Time Minutes
    * Billable Tracked Time Minutes
    * Billable Rate
    * Cost Rate
    * Title
    * Category
    * Description
    * Service Name
    * Number of Sessions
    * Time Log Week of Year
    * Time Log Month of Year
  </Accordion>

  <Columns cols={2}>
    <Card icon="chevron-up">
      [Top of section](#using-the-stopwatch)
    </Card>

    <Card icon="chevrons-up">
      [Top of page](#)
    </Card>
  </Columns>
</Accordion>

## 4. Time Logs

<Accordion title="Time Logs" icon="list" iconType="duotone">
  As part of the installation process, **StopWatch for HubSpot** creates an App Object within your HubSpot account, called **Time Logs**.

  ### Time Log Variations

  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:

  <Expandable title="1 Time Log Per Session">
    #### 1 Time Log Per Session

    <Tip>
      Enabling this setting can unlock powerful Time Log segmentation capabilities
    </Tip>

    <Info>
      "1 Time Log Per Session" is an optional, user-specific setting. It is disabled by default and available only to **👥 Team** and **💫 Unlimited** subscribers.
    </Info>

    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**.

    <br />

    <br />
  </Expandable>

  <Expandable title="Default">
    #### Default

    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**:

    <Card horizontal>
      * **Object Type** (e.g. CONTACT)
      * **Object/Record ID** (e.g. 1234567890)
      * **HubSpot User ID** (e.g. 12345)
      * ***Example**: CONTACT\_1234567890\_12345*
    </Card>

    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).

    <br />

    <br />
  </Expandable>

  <Expandable title="Split By Week OR Month">
    #### Split By Week / Split By Month

    <Info>
      "Split Time Logs By Week" and "Split Time Logs By Month" are optional, user-specific settings. They are both disabled by default.
    </Info>

    For any period of time where either of the optional, user-specific **Split By Week** or **Split By Month** [app settings](#app-settings) are enabled, there should exist in your HubSpot account **1 Time Log record per unique combination of the following variables**:

    <Card horizontal>
      Default

      * **Object Type** (e.g. CONTACT)
      * **Object/Record ID** (e.g. 1234567890)
      * **HubSpot User ID** (e.g. 12345)
      * ***Example**: CONTACT\_1234567890\_12345*

      Split By Week

      * **Year** (e.g. 2026)
      * **Week Number** (e.g. 50)
      * ***Example**: CONTACT\_1234567890\_12345\_2026\_50*

      Split By Month

      * **Year/Month** (e.g. 202608)
      * ***Example**: CONTACT\_1234567890\_12345\_202608*
    </Card>

    <br />
  </Expandable>

  ### Time Log Record View

  Each **Time Log** record contains <Tooltip tip="Stored within HubSpot 'properties'">data</Tooltip>, reflecting a summary of all relevant time tracking sessions, with respect to the <Tooltip tip="Time Log aggregation depends on your settings. See the 'Time Log Variations' section above.">configured settings</Tooltip>. 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.

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-timelog-2.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=d63f7ffb4174a54bfc36ffd01e5cb839" width="100%" data-path="images/stopwatch/guide-timelog-2.png" />
  </Frame>

  Information relating to each individual time tracking "session" can be viewed as <Tooltip tip="Always titled 'Time Log Session Details'">**Notes**</Tooltip> within the activity timeline of the relevant **Time Log** record (see image below).

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-sessions-1.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=b85db1ba1bf7a353432a33bcfc9d71a7" width="100%" data-path="images/stopwatch/guide-sessions-1.png" />
  </Frame>

  <Info>
    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.
  </Info>

  <Columns cols={2}>
    <Card icon="chevron-up">
      [Top of section](#time-logs)
    </Card>

    <Card icon="chevrons-up">
      [Top of page](#)
    </Card>
  </Columns>
</Accordion>

## 5. Timesheets

<Accordion title="Timesheets" icon="table" iconType="duotone">
  The **Timesheet** interface provides a weekly view of your relevant **Time Log** records, directly inside HubSpot.

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/A9168Dx440WGYVCl/images/stopwatch/guide-timesheets-1.png?fit=max&auto=format&n=A9168Dx440WGYVCl&q=85&s=d651e34ae0479513ba631688d47fa286" width="100%" data-path="images/stopwatch/guide-timesheets-1.png" />
  </Frame>

  <Note>
    * 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
    * <Tooltip tip="Roles managed via App Settings">**App Admins** and **Timesheet Managers**</Tooltip> can view and edit any HubSpot User's Timesheet. Non-admin users can only view and edit their own Timesheet.
  </Note>

  ### Accessing the Timesheet

  There are 3 ways to navigate to the **Timesheet** from within HubSpot:

  <Accordion title="From the StopWatch App Card" icon="timer" iconType="regular">
    <Steps>
      <Step title="Open a supported HubSpot CRM record">
        Navigate to an individual HubSpot CRM record view where the **StopWatch** App Card is available.
      </Step>

      <Step title="Find the StopWatch App Card">
        Locate the **StopWatch** App Card on the record view.
      </Step>

      <Step title="Open the Timesheet">
        Click **Tools** > **Timesheet**.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="From the HubSpot App Marketplace icon" icon="store" iconType="regular">
    <Steps>
      <Step title="Open the App Marketplace menu">
        Click the **App Marketplace** icon (looks like <Icon icon="store" />) in HubSpot's top navigation bar.
      </Step>

      <Step title="Find 'Your recently visited apps'" />

      <Step title="Click 'StopWatch'" />
    </Steps>
  </Accordion>

  <Accordion title="From HubSpot Connected Apps settings" icon="plug" iconType="regular">
    <Steps>
      <Step title="Open Connected Apps">
        Navigate to **HubSpot Settings** > **Integrations** > **Connected Apps**.
      </Step>

      <Step title="Find StopWatch">
        Find the **StopWatch** row.
      </Step>

      <Step title="Open the Actions dropdown">
        Click the **Actions** dropdown on the **StopWatch** row.
      </Step>

      <Step title="Click 'Go to app home'" />
    </Steps>
  </Accordion>

  ### Admin/Manager vs. User View

  <Tooltip tip="Roles managed via App Settings">**App Admins** and **Timesheet Managers**</Tooltip> can view/edit <Tooltip tip="Displayed by default">their own Timesheet</Tooltip>, and can also select any other HubSpot user to view/edit that user's Timesheet.

  Non-admin users can only view/edit their own Timesheet.

  ### Grid View & List View

  The Timesheet supports 2 table layouts:

  <Columns cols={2}>
    <Card>
      **Grid view**
      <br />Displays rows in a list format, with 1 column for each day in the selected week. Only one metric can be displayed at a time.
    </Card>

    <Card>
      **List view**
      <br />Displays rows in a list format, with a dedicated **Date** column. Multiple metrics can be displayed.
    </Card>
  </Columns>

  ### Weekly & Daily Views

  By default, the Timesheet shows a weekly view. You can navigate between weeks using the arrow buttons near the <Tooltip tip="Visible towards the top right of screen">date range</Tooltip>, 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.

  ### Grouped & Individual Logs

  The Timesheet can display Time Logs in either of the following modes:

  <Columns cols={2}>
    <Card>
      **Grouped**
      <br />Time Logs are grouped by the HubSpot CRM record that time has been tracked against
    </Card>

    <Card>
      **Individual Logs**
      <br />Each Time Log is displayed as its own row
    </Card>
  </Columns>

  Grouped mode is useful for reviewing and editing total time tracked against a CRM record. Individual Logs mode is useful when you want to inspect or edit each Time Log individually.

  ### Tags, Filters & Search

  The **Tags** column is intended to help you segment your Timesheet. Depending on the Time Log data, tags may include:

  <Card>
    * 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
  </Card>

  Use the **Filters** dropdown and/or **Search** input to constrain the displayed data accordingly.

  <Tip>
    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.
  </Tip>

  ### Metrics

  The headline metrics at the top of the Timesheet can be customised. Available metrics include:

  <Card>
    * **Total Time**
    * **Billable Time**
    * **Billable %**
    * **Billable Amount**
    * **Cost Amount**
    * **Margin Amount**
    * **Margin %**
  </Card>

  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.

  ### Capacity & Utilisation

  The **available hours tracked this week** progress bar in the <Tooltip tip="Above the Timesheet table, towards the top of the page">**Summary Statistics** section</Tooltip> shows how much of a user's available time has been used in the selected week. This is calculated based on the **Weekly Capacity (Hours)** user-specific [app setting](/apps/stopwatch#app-settings).

  ### Submitting Time Tracking Sessions

  To submit a new time tracking session, click the add button (looks like <Icon icon="plus" />) above the table. This opens a modal where you can input all relevant information relating to the time tracking session you'd like to record. First find the HubSpot CRM record you want to track time against, then input the relevant information, and then finally click **Submit Session**. Alternatively, in some cases, you may be able to simply click **Start Timer** to begin a time tracking session, rather than submitting a complete session.

  ### Editing Time Logs

  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 navigate directly to the Time Log record view, update several Time Log properties, stop the timer (if it's running) and, depending on your install configuration, you may also be able to delete the Time Log record.

  <Warning>
    Time Logs with an active timer generally cannot be edited from the Timesheet. Use the **Stop Timer** button first before attempting to edit.
  </Warning>

  ### Exporting Timesheet Data

  Click the copy/export button (looks like <Icon icon="copy" />) 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:

  <Card>
    * 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.
  </Card>

  <Columns cols={2}>
    <Card icon="chevron-up">
      [Top of section](#timesheets)
    </Card>

    <Card icon="chevrons-up">
      [Top of page](#)
    </Card>
  </Columns>
</Accordion>

## 6. Web UI

<Accordion title="Web UI" icon="globe-pointer" iconType="duotone">
  <Note>
    * This feature is only available to our **💫 Unlimited** subscribers. Information about our subscription options is available on our [Pricing page](/pricing?app=stopwatch).
    * 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](#app-settings)**.
  </Note>

  <Card icon="globe-pointer" iconType="duotone" href="https://stopwatch.threadi.au/login" arrow={true} color="#FF7A59" horizontal>
    Log in to StopWatch for HubSpot's Web UI
  </Card>

  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.

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/V0nat7_TFc5VbHQk/images/stopwatch/guide-web-1.png?fit=max&auto=format&n=V0nat7_TFc5VbHQk&q=85&s=e0a5586bf0299c3ae2144364d1490f81" width="100%" data-path="images/stopwatch/guide-web-1.png" />
  </Frame>

  To access this feature, you'll need to login [here](https://stopwatch.threadi.au/login) (a link is sent to the supplied email address). You can also get there via the **"Web Login"** button on our [app homepage](https://stopwatch.threadi.au).

  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.
</Accordion>

## 7. App Events

<Accordion title="App Events" icon="circle-play" iconType="duotone">
  <Note>
    * 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](https://www.threadi.au/support?app_name=stopwatch).
  </Note>

  **StopWatch for HubSpot** supports **App Events** for time tracking sessions. This is an <Tooltip tip="Disabled by default">optional feature</Tooltip>, controlled via the **[Admin App Settings](#app-settings)**

  When enabled, **App Events are logged within the relevant <Tooltip tip="i.e. the relevant Contact, Company, Deal, Ticket, Appointment, Course, Listing, Project or Service record view (not the Time Log record view)">HubSpot CRM record’s</Tooltip> 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.

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/Bkm7U4dkFqMhw0bw/images/stopwatch/guide-app-events-2.png?fit=max&auto=format&n=Bkm7U4dkFqMhw0bw&q=85&s=e5e07d0d0f4886a91fe4f1ff56ce0bf5" width="100%" data-path="images/stopwatch/guide-app-events-2.png" />
  </Frame>

  <Info>
    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.
  </Info>

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/Bkm7U4dkFqMhw0bw/images/stopwatch/guide-app-events-1.png?fit=max&auto=format&n=Bkm7U4dkFqMhw0bw&q=85&s=2dd0dcb18ec20f33a7d79ea9d6304d53" width="100%" data-path="images/stopwatch/guide-app-events-1.png" />
  </Frame>

  This feature is available when tracking time against the HubSpot CRM object types listed below. All time tracking <Tooltip tip="i.e. StopWatch App Card Timer, StopWatch App Card Quick Add, StopWatch Web UI and Custom Workflow Actions">session submission sources</Tooltip> are supported.

  <Columns cols={2}>
    <Card>
      * **Contact**
      * **Company**
      * **Deal**
      * **Ticket**
    </Card>

    <Card>
      * **Project**
      * **Appointment**
      * **Course**
      * **Listing**
      * **Service**
    </Card>
  </Columns>
</Accordion>

## 8. Webhooks

<Accordion title="Webhooks" icon="webhook" iconType="duotone">
  <Note>
    This feature is:

    * Only available to **💫 Unlimited** subscribers.
    * 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.
  </Note>

  **StopWatch for HubSpot** supports **Webhook** subscriptions for time tracking sessions. This is an <Tooltip tip="Disabled by default">optional feature</Tooltip>, controlled via the **[Admin App Settings](#app-settings)**

  When 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.

  <Accordion title="Time Log Creation" icon="plus" iconType="duotone">
    **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:

    #### Request Body

    ```json theme={null}
    {
      "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
    }
    ```
  </Accordion>

  <Accordion title="Time Tracking Session Submissions" icon="arrow-right-to-arc" iconType="duotone">
    **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:

    #### Request Body

    ```json theme={null}
    {
      "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
    }
    ```
  </Accordion>

  <Accordion title="Time Log Deletion" icon="xmark" iconType="duotone">
    **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:

    #### Request Body

    ```json theme={null}
    {
      "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
    }
    ```
  </Accordion>

  <Info>
    **Return a `2xx` response code** from your server **within 15 seconds** to acknowledge successful receipt of the webhook request
  </Info>

  ### Validating webhook requests

  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**.

  <Accordion title="Webhook Request Headers" icon="envelope-open-text" iconType="duotone">
    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. <Tooltip tip="Unix timestamp in milliseconds">1781663476554</Tooltip>
    * **`X-StopWatch-Webhook-Id`** e.g. <Tooltip tip="Representing {eventId}-{attemptNumber}">1122334455-0</Tooltip>
  </Accordion>

  <Accordion title="Verification Steps" icon="shield-check" iconType="duotone">
    <Steps>
      <Step title="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.
      </Step>

      <Step title="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.
      </Step>

      <Step title="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.
      </Step>

      <Step title="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.
      </Step>

      <Step title="Reject invalid requests">
        If the signatures do not match, reject the request with an appropriate HTTP status code (e.g. 401 Unauthorized).
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Example Webhook Request Validation Code" icon="code" iconType="regular">
    <CodeGroup dropdown>
      ```python Example Webhook Request Validation theme={null}
      import hmac
      import hashlib
      import time
      from flask import Flask, request, abort

      SECRET = "{{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
      ```
    </CodeGroup>
  </Accordion>
</Accordion>

## 9. Suppress Time Log Ownership Notifications

<Accordion title="Suppress Time Log Ownership Notifications" icon="bell-slash" iconType="regular">
  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.

  <Info>
    Among other benefits, record ownership of Time Logs allows for:

    1. Dynamic filtering within reports, and
    2. Subsequent record ownership assignment within workflows
  </Info>

  By default, if a record of <Tooltip tip="Including App Objects like 'Time Logs'">any object type</Tooltip> 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:

  <Steps>
    <Step title="Navigate to HubSpot Settings">
      Open your HubSpot account and click the <Icon icon="gear" /> icon in the top navigation bar.
    </Step>

    <Step title="Navigate to User-Specific Notifications">
      Via the left sidebar, navigate to 'Your Preferences' > 'Notifications'
    </Step>

    <Step title="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'.
    </Step>
  </Steps>

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-notifications-1.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=7a71d3383c76fcc3485f2e95b2c4f90d" width="100%" data-path="images/stopwatch/guide-notifications-1.png" />
  </Frame>

  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.

  <Columns cols={2}>
    <Card icon="chevron-up">
      [Top of section](#suppressing-time-log-ownership-notifications)
    </Card>

    <Card icon="chevrons-up">
      [Top of page](#)
    </Card>
  </Columns>
</Accordion>

## 10. Reporting and Automation

<Accordion title="Reporting & Automation" icon="bolt-lightning" iconType="duotone">
  <Note>
    HubSpot [Custom Reports](https://knowledge.hubspot.com/reports/create-custom-reports) and [Workflows](https://knowledge.hubspot.com/workflows/create-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.
  </Note>

  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.

  ### Custom Reports

  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**.

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-reports-1.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=312d4114f976b13135dc53fca43b4e9f" width="100%" data-path="images/stopwatch/guide-reports-1.png" />
  </Frame>

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-reports-2.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=371adce8f1be82fd01ce908f4684cd8b" width="100%" data-path="images/stopwatch/guide-reports-2.png" />
  </Frame>

  ### Automation Workflows

  #### Custom Workflow Actions

  <Note>
    This feature is available to **💫 Unlimited** subscribers only
  </Note>

  **💫 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 <Tooltip tip="24 hour UTC period">per day</Tooltip>. 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](https://www.threadi.au/support?app_name=stopwatch).

  | 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](https://www.threadi.au/support)                                                                                                                                                                                                                                                                                                                                                                                      |

  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.

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-workflows-1.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=9cebb7c43c5bdaef0c4a57123881c547" width="100%" data-path="images/stopwatch/guide-workflows-1.png" />
  </Frame>

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-workflows-2.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=57ca8e8ae0a6720fb73cc7853e498bce" width="100%" data-path="images/stopwatch/guide-workflows-2.png" />
  </Frame>

  <Frame>
    <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-workflows-3.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=ac3d2cc997c99f41a59e9ab99b8b695d" width="100%" data-path="images/stopwatch/guide-workflows-3.png" />
  </Frame>

  To learn more about how to use your **Time Logs** in HubSpot's [custom reporting](https://knowledge.hubspot.com/reports/create-custom-reports) and [automation tools](https://knowledge.hubspot.com/workflows/create-workflows), please review the previously linked HubSpot Knowledge Base Articles.

  <Columns cols={2}>
    <Card icon="chevron-up">
      [Top of section](#reporting-and-automation)
    </Card>

    <Card icon="chevrons-up">
      [Top of page](#)
    </Card>
  </Columns>
</Accordion>

## 11. App Settings

<Accordion title="App Settings" icon="gear" iconType="duotone">
  **StopWatch for HubSpot** comes with a number of settings, configurable from within HubSpot.

  #### User-Specific Settings

  By default, user-specific settings can be configured by anyone with **App Marketplace Access** permissions.

  * Admins can edit the settings of all users
  * Non-admins can only edit their own user-specific settings

  <Info>Admins can control which non-admins are able to adjust user-specific settings via the **Lockdown User Settings** feature.</Info>

  #### Account-Specific Settings

  Only admins can edit the account-specific settings.

  <br />

  To access **StopWatch for HubSpot** settings:

  <Steps>
    <Step title="Navigate to HubSpot Settings">
      Open your HubSpot account and click the <Icon icon="gear" /> icon in the top navigation bar.
    </Step>

    <Step title="Navigate to Connected Apps">
      Via the left sidebar, navigate to Account Management > Integrations > Connected Apps
    </Step>

    <Step title="Find & Click 'StopWatch'">
      From the list of apps connected to your HubSpot account, find and click **StopWatch**. Then click through to the **Settings** tab.
    </Step>
  </Steps>

  <Tabs>
    <Tab title="Admin" icon="user" iconType="solid">
      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**                       | <Badge size="lg" color="gray" icon="list">Primary Admin</Badge> | 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**                          | <Badge size="lg" color="gray" icon="list">None</Badge>          | Only available to our **💫 Unlimited** subscribers. A list of nominated users with access to our [Web UI feature](#web-ui).                                                                                                                                                                                                                                                                                                            |
      | **StopWatch API Key**                     | <Badge size="lg" color="gray" icon="ellipsis">None</Badge>      | Manage your [**StopWatch API**](/apis/stopwatch) authentication token. Only available to our **💫 Unlimited** subscribers and only visible to **Primary Admins**.                                                                                                                                                                                                                                                                      |
      | **Webhooks**                              | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge>      | Subscribe to Time Log creation and time tracking session submission webhook events.                                                                                                                                                                                                                                                                                                                                                    |
      | **Lockdown User Settings**                | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge>      | If enabled, prevents non-admins from modifying their own user-specific settings.                                                                                                                                                                                                                                                                                                                                                       |
      | **Lockdown User Settings Exceptions**     | <Badge size="lg" color="gray" icon="list">None</Badge>          | 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**                   | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge>      | 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** | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge>      | 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.                                                                                           |
      | **Timesheet Managers**                    | <Badge size="lg" color="gray" icon="list">None</Badge>          | Assign the role of **Timesheet Manager** to individual users. Timesheet Managers can view and edit all users' Timesheets and submit time tracking sessions on their behalf. App Admins inherently have Timesheet Manager permissions, so they aren't shown as options in this setting.                                                                                                                                                 |
    </Tab>

    <Tab title="User" icon="user" iconType="regular">
      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**                       | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | <Badge size="md" color="blue">Visible to admins only</Badge> If enabled, this user is assigned admin privileges. Only existing admins can assign/remove admin privileges to/from other users. The <Tooltip tip="By default, the person who installs the app for the first time">Primary Admin</Tooltip> cannot have their admin privileges removed within the app settings. To change the Primary Admin user, please submit a [support request](https://www.threadi.au/support?app_name=stopwatch).                                                                                                                                                                                                                                                                                                                                                                                      |
      | **1 Time Log Per Session**           | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | 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 <Tooltip tip="Similar to how 'Split Time Logs By Week' and 'Split Time Logs By Month' work">when time was tracked</Tooltip>.                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
      | **Associate Engagements Option**     | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | 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**          | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | 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**         | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | 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**                 | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | If enabled, starts the timer automatically when an individual HubSpot CRM record view is loaded, assuming <u>all of the following conditions are met:</u><br /><br />**1. The "StopWatch" App Card is present on the given record view.**<br /> **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.<br />**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**              | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | 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**             | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | 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**  | <Badge size="lg" color="gray" icon="bars">Disabled</Badge> | 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**     | <Badge size="lg" color="gray" icon="bars">Default</Badge>  | Configure the duration increments available when submitting a 'Quick Add' time tracking session (in 'Simple' submission mode).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
      | **Show 'Team Summary Data' Section** | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | 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**         | <Badge size="lg" color="green" icon="toggle-on">ON</Badge> | Controls whether the 'Quick Add' feature is displayed within the StopWatch App Card.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
      | **Preferred Date Format**            | <Badge size="lg" color="gray" icon="bars">Default</Badge>  | Customise the date format used in certain app features, including the **Start Date** Quick Add input field. **Medium** and **Long** date format options are <Tooltip tip="For example, depending on your browser settings, the 'Long' date format might be displayed as 'January 10, 2027'">localised</Tooltip>.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
      | **Max One Active Timer**             | <Badge size="lg" color="red" icon="toggle-off">OFF</Badge> | 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.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
      | **Weekly Capacity (Hours)**          | <Badge size="lg" color="gray" icon="hashtag">0</Badge>     | The number of hours this user is available per week (min: 0, max: 168). Used for capacity calculations in the app's Timesheets feature.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
    </Tab>

    <Tab title="Categories" icon="list">
      <Note>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).</Note>
      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.

      <Frame>
        <img src="https://mintcdn.com/threadintegrations/qibh0KFEf_-1zy8L/images/stopwatch/guide-settings-categories-1.png?fit=max&auto=format&n=qibh0KFEf_-1zy8L&q=85&s=3c9e889809d19f59c9c37580b0cd2eaf" width="100%" data-path="images/stopwatch/guide-settings-categories-1.png" />
      </Frame>
    </Tab>

    <Tab title="Billable Rates" icon="money-bill-1-wave">
      <Note>Billable Rates are only available for **💫 Unlimited** subscribers</Note>
      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:

      <Columns cols={2}>
        <Card>
          * **👤 User-Based**: billable rates are managed per HubSpot User
        </Card>

        <Card>
          * **💼 Service-Based**: billable rates are managed per <Tooltip tip="As defined by app admins">Service</Tooltip>
        </Card>
      </Columns>

      The **Service** selector in the **StopWatch** App Card is only shown when all of the following conditions are true:

      <Card>
        1. **Billable Rate Type** is set to **Service-Based**
        2. At least 1 Service has been configured
        3. The user's **1 Time Log Per Session** setting is enabled
      </Card>

      <Frame>
        <img src="https://mintcdn.com/threadintegrations/dXBQ7DizzN-qMXFX/images/stopwatch/guide-settings-billable-rates-1.png?fit=max&auto=format&n=dXBQ7DizzN-qMXFX&q=85&s=a6b030a5514b5dc5afe11ebe138aa549" width="100%" data-path="images/stopwatch/guide-settings-billable-rates-1.png" />
      </Frame>

      <Frame>
        <img src="https://mintcdn.com/threadintegrations/dXBQ7DizzN-qMXFX/images/stopwatch/guide-settings-billable-rates-2.png?fit=max&auto=format&n=dXBQ7DizzN-qMXFX&q=85&s=120791d84b7be1ee5e631ae87926e5fc" width="100%" data-path="images/stopwatch/guide-settings-billable-rates-2.png" />
      </Frame>
    </Tab>
  </Tabs>

  <Columns cols={2}>
    <Card icon="chevron-up">
      [Top of section](#app-settings)
    </Card>

    <Card icon="chevrons-up">
      [Top of page](#)
    </Card>
  </Columns>
</Accordion>

## 12. Time Zones

<Accordion title="Time Zones" icon="earth-americas" iconType="regular">
  <Note>
    Dates and times are always stored in HubSpot as UTC. However, when displaying dates and times in certain app interfaces, **StopWatch for HubSpot** uses your <Tooltip tip="HubSpot Settings > Account Defaults > General > Time zone">HubSpot Portal's time zone</Tooltip> by default.
  </Note>

  By default, when displaying times in certain app interfaces, **StopWatch for HubSpot** uses your <Tooltip tip="HubSpot Settings > Account Defaults > General > Time zone">HubSpot Portal's time zone</Tooltip>. However, you can override this default behaviour by specifying a preferred time zone per user, as follows:

  <Steps>
    <Step title="Navigate to HubSpot Settings">
      Open your HubSpot account and click the <Icon icon="gear" /> icon in the top navigation bar.
    </Step>

    <Step title="Navigate to Users & Teams">
      Via the left sidebar, navigate to Account Management > Users & Teams
    </Step>

    <Step title="Click Relevant User">
      From the list of users, click the relevant user's display name to open their user configuration area.
    </Step>

    <Step title="Preferences > Time Zone">
      Click the **Preferences** tab, then scroll down to the **Time zone** setting. Update the time zone as required, then click **Save**.
    </Step>
  </Steps>
</Accordion>

## 13. Uninstall App

<Accordion title="Uninstall App" icon="trash-can" iconType="duotone">
  If you need to uninstall the app from your HubSpot account, this can be performed via HubSpot's **Connected Apps** settings page.

  <Steps>
    <Step title="Navigate to HubSpot Settings">
      Open your HubSpot account and click the <Icon icon="gear" /> icon in the top navigation bar.
    </Step>

    <Step title="Navigate to Connected Apps">
      Via the left sidebar, navigate to Account Management > Integrations > Connected Apps
    </Step>

    <Step title="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**.
    </Step>
  </Steps>

  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 <Tooltip tip="i.e. Time Log records and associated Time Log Session Details">time tracking data</Tooltip> will remain stored within your HubSpot account.

  Additionally, any existing HubSpot Workflows leveraging <Tooltip tip="e.g. Start Timer and/or Stop Timer custom workflow actions">**StopWatch for HubSpot** features</Tooltip> 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](https://www.threadi.au/support?app_name=stopwatch).

  <Columns cols={2}>
    <Card icon="chevron-up">
      [Top of section](#uninstall-app)
    </Card>

    <Card icon="chevrons-up">
      [Top of page](#)
    </Card>
  </Columns>
</Accordion>

<br />

<Columns cols={2}>
  <Card icon="chevrons-up">
    [Top of page](#)
  </Card>
</Columns>

<br />

***

**StopWatch for HubSpot** is created and managed by [Thread Integrations](https://www.threadi.au/), a small Australian business providing expert system integration, software development & analytics services.
