> For the complete documentation index, see [llms.txt](https://docs.screendesk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.screendesk.io/helpdesk-integrations/hubspot/chatbots-and-agents.md).

# Chatbots and Breeze Customer Agent

Preview how HubSpot chatflows and Breeze Customer Agent can request screen recordings and check when customers submit them.

{% hint style="info" %}
**Development preview — not generally released.** These guides describe the implementation tested in a HubSpot test account on 16 October 2026. The Screendesk changes and HubSpot actions have not been deployed to customers. Screenshots show test configurations. The setup examples use the public Screendesk address; confirm preview availability before enabling a customer-facing flow.
{% endhint %}

Ask customers to show an issue while they are chatting with your bot. The bot offers a **Record your screen** link, the customer records in a separate browser tab, and the bot checks whether the recording was submitted when the customer returns.

General Screendesk API access is not required. A workspace admin creates a dedicated **HubSpot chatbot token** with access only to recording requests and their completion status.

## Choose your setup

| You use…                                                         | Start here                                                                        | How it requests a recording                                            |
| ---------------------------------------------------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| A HubSpot rule-based chatbot with defined questions and branches | [Rule-based chatflows](/helpdesk-integrations/hubspot/rule-based-chatflows.md)    | A **Run a code snippet** action creates the link and checks completion |
| Breeze Customer Agent                                            | [Breeze Customer Agent](/helpdesk-integrations/hubspot/breeze-customer-agent.md)  | One custom API action requests the recording; another checks receipt   |
| A human agent replying from a ticket                             | [Request from the sidebar](/helpdesk-integrations/hubspot/request-via-sidebar.md) | The agent copies a ticket-specific recording request into their reply  |

Both automated setups begin with [Create a chatbot token](/helpdesk-integrations/hubspot/chatbot-token.md). After configuration, follow [Testing and troubleshooting](/helpdesk-integrations/hubspot/chatbot-testing-and-troubleshooting.md).

## What the customer experiences

1. The customer describes something that is easier to show than explain: an error, an unexpected screen, or steps that fail.
2. The bot identifies the customer. In the Breeze setup, the action is protected with HubSpot's **Verify email** option.
3. Screendesk creates a recording request for the supplied HubSpot context.
4. The bot offers a labeled **Record your screen** link. The full signed URL remains behind the label.
5. The customer opens the link in another tab, records the issue, and submits it.
6. They return to chat. In the rule-based example, they select **I've sent my recording**. In Breeze, they can say “I've sent my recording.”
7. The bot checks the original request and acknowledges receipt only after Screendesk reports `received`.

![HubSpot chatbot preview showing a clickable Record your screen link and an instruction to return to chat](https://3820804400-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfW6XSzJSKsNyZnOkSJPt%2Fuploads%2FW6IMGMCrcTGPcEGQyRTD%2Fchatbot-wrapped-link-preview.png?alt=media)

*Actual rule-based chatbot preview. This screenshot demonstrates link formatting using a harmless placeholder destination; it does not show a completed recording upload. The supplied integration code uses the recording URL returned by Screendesk.*

The recorder opens outside the chat bubble. Stopping a recording is not the same as submitting it. The customer must finish sending the recording before the completion check succeeds.

## What appears in HubSpot

The destination depends on the information supplied when the request is created:

| Request context                         | Result after submission                                                                                             |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Contact ID or a matching customer email | A recording note on that contact's CRM timeline                                                                     |
| Ticket ID                               | A note associated with that exact ticket                                                                            |
| Contact and ticket IDs                  | The note can be associated with both records                                                                        |
| Conversation thread ID                  | An internal comment in that exact conversation, plus a CRM note for its associated contact or ticket when available |

The standard rule-based example and the Breeze instructions in these guides use the **contact timeline**. They do not infer a customer's most recent ticket or conversation. This prevents a recording from being attached to an unrelated support request.

For a ticket-specific implementation, the integration must supply the correct existing ticket ID. Direct conversation comments additionally require the HubSpot connection to have `conversations.read` and `conversations.write`. Those optional permissions are prepared for the upcoming release; existing customers have not been granted them automatically.

When a request targets a ticket, the upcoming analytics feature also marks an existing Yes/No ticket property named `screendesk` as Yes. It does not create that property or backfill older recordings. See [Analytics and ticket property](/helpdesk-integrations/hubspot/analytics.md).

## Before you start

* Connect the intended Screendesk workspace to the intended HubSpot account.
* Use a Screendesk workspace admin to create the chatbot token.
* Keep the token's issuing member active in the workspace with a role other than watch-only.
* Identify the customer before requesting a recording. An email-based request must match one existing HubSpot contact.
* For rule-based code actions, HubSpot requires **Data Hub Professional or Enterprise**. Use the **Node.js 24** runtime.
* For Breeze, your HubSpot account needs an eligible subscription, Customer Agent editing permissions, and the applicable HubSpot Credits for deployment. Check HubSpot's current requirements before rollout.

## What this preview verifies

| Area                                                               | Verification completed                                                                                                      |
| ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| Workspace token isolation and operation without general API access | Automated tests                                                                                                             |
| Recording request, upload, completion status, and CRM note         | Real requests and uploads against the HubSpot test account                                                                  |
| Breeze API authentication and field mapping                        | Native **Test API** returned 201 for creation, then 200 with `pending` and later `received` / `delivered`                   |
| Labeled link in a rule-based chatbot                               | Real browser preview; HTML links render correctly                                                                           |
| Breeze recording request and labeled link                          | Email verification completed in the action preview; the real link opened the recorder and a browser recording was submitted |
| Internal conversation comment using the new optional scopes        | Automated provider tests; not verified against a live installation with those new scopes                                    |

The completion action also confirmed receipt through its own verified conversation preview. The two Breeze drafts were tested separately. Automatic handoff between both actions in one conversation remains a release check.

These distinctions matter when planning a rollout: a successful API test does not by itself prove that the agent selects the correct action or handles the full conversation correctly.

Continue with [Create a chatbot token](/helpdesk-integrations/hubspot/chatbot-token.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.screendesk.io/helpdesk-integrations/hubspot/chatbots-and-agents.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
