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

# Configuration

> From this panel you can manage the contacts visible to agents, control the use of HSM message templates, customize the HubSpot properties displayed in the chat, and define conversation assignment rules.

<Tabs>
  <Tab title="Agents">
    # Contact visibility for agents

    In the agents tab you can configure which contacts each agent can view on the platform.

    <img src="https://mintcdn.com/trebleai/N7qFKPzh9cWmkY9Y/images/Screenshot2025-05-21at7.05.05AM.png?fit=max&auto=format&n=N7qFKPzh9cWmkY9Y&q=85&s=863e15716e6828f0a16c149342763df5" alt="Screenshot 2025-05-21 at 7.05.05 AM.png" width="2940" height="1662" data-path="images/Screenshot2025-05-21at7.05.05AM.png" />

    ### Why is it useful?

    This configuration allows you to adapt contact access according to your team's structure and operation. It's especially useful if:

    * Each agent manages their own portfolio.
    * You need to limit access by campaign or segment.
    * You want to maintain information confidentiality.

    ### Step by step to configure contact visibility

    <Steps>
      <Step title="Access agent configuration">
        Go to **Configuration > Agents** in the platform's side menu.
      </Step>

      <Step title="Select the contact list option">
        Choose how you want your agents to view the company's contact list. You can choose any of the following options:
      </Step>
    </Steps>

    <CardGroup cols={2}>
      <Card title="Option 1: Complete contact list" icon="users">
        All agents see the account's contact database, regardless of the CRM property.
        **Recommended for teams that work collaboratively on the same portfolio.**
      </Card>

      <Card title="Option 2: Only assigned contacts" icon="user-check">
        Each agent sees only the contacts assigned to them.
        **Useful for operations segmented by agent, campaign, or region.**
      </Card>
    </CardGroup>

    <Steps>
      <Step title="And you're done!" stepNumber={3}>
        Once you select an option, all contacts will be updated.
      </Step>
    </Steps>

    <Tip>
      Remember that you can adjust this configuration at any time to adapt to changes in your team or strategy.
    </Tip>
  </Tab>

  <Tab title="HSM">
    # HSM template visibility

    Here you can define which teams can access and use each HSM template available on the platform, helping to maintain organization and control over the messages that are sent.

    <img src="https://mintcdn.com/trebleai/N7qFKPzh9cWmkY9Y/images/Screenshot2025-05-21at7.18.23AM.png?fit=max&auto=format&n=N7qFKPzh9cWmkY9Y&q=85&s=f2dc0b5e3de57d93e384a484313ab87b" alt="Screenshot 2025-05-21 at 7.18.23 AM.png" width="2940" height="1660" data-path="images/Screenshot2025-05-21at7.18.23AM.png" />

    ### Why is it useful?

    This functionality allows you to keep operations organized when working with multiple teams (sales, support, collection, etc.). Assigning permissions by team helps to:

    * Avoid incorrect use of templates.
    * Show only relevant messages for each team.
    * Facilitate administration and control of sent messages.

    <Note>
      Tip: If you have duplicate or unused templates, consider cleaning them up before adjusting permissions.
    </Note>

    ### Step by step to manage template visibility

    <Steps>
      <Step title="Access HSM configuration">
        Go to **Configuration > HSM** to see all available templates and modify their usage permissions.

        **In the template table you will see:**

        * **HSM Template:** Name and message fragment.
        * **Category:** Assigned classification (for example, "Marketing" or "Support").
        * **Permissions:** Teams with access to the template.
        * **Last modification date:** Last time the template was edited
      </Step>

      <Step title="Select the teams that can use the template">
        Click on the **Permissions** column of the template you want to modify and check or uncheck teams as appropriate. You can also select **All teams** to enable global use of the template.
      </Step>

      <Step title="Save changes">
        Once you have selected the teams, click **Save changes** to apply the configuration.
      </Step>
    </Steps>

    <Warning>
      If a template appears as "None of the teams", it will not be available to any agent.
    </Warning>

    This way you can maintain control over which teams can use each template and avoid confusion in daily operations.
  </Tab>

  <Tab title="HubSpot">
    # HubSpot contact properties customization (beta)

    Control which HubSpot properties are displayed in the agents' chat side panel, and define whether they can edit them or not.

    <img src="https://mintcdn.com/trebleai/N7qFKPzh9cWmkY9Y/images/Screenshot2025-05-21at7.08.03AM.png?fit=max&auto=format&n=N7qFKPzh9cWmkY9Y&q=85&s=6659ef33697ddf8e47297fe12e86f5d1" alt="Screenshot 2025-05-21 at 7.08.03 AM.png" width="2940" height="1664" data-path="images/Screenshot2025-05-21at7.08.03AM.png" />

    ### Why is it useful?

    This panel is designed to offer **quick context** about the contact and allow **updating information without leaving the chat**.

    It's especially useful if:

    * Your agents need to consult key CRM data while conversing.
    * You want to keep information updated without opening HubSpot.
    * You're looking to improve operational efficiency and data quality.

    <Note>
      This functionality is in **beta** phase. Currently not all properties are compatible.
    </Note>

    ### Step by step to customize the contact panel

    <Steps>
      <Step title="Access HubSpot configuration">
        Go to **Configuration > HubSpot** to customize which properties will be displayed in the contact panel.
      </Step>

      <Step title="Search for the property you want to display">
        Use the search bar to find the specific property you want to add to the panel.
      </Step>

      <Step title="Activate the property">
        Check the corresponding box so that the selected property is displayed in the contact panel.
      </Step>

      <Step title="Define if the property is editable">
        Use the switch in the "Editable property?" column to allow or prevent its editing by the agent.
      </Step>

      <Step title="Reorder properties">
        Drag and drop properties in your preferred order. The preview on the right will show you how it will look in the chat.
      </Step>

      <Step title="Save changes">
        Once you have customized the panel to your liking, make sure to save the changes so they are applied.
      </Step>
    </Steps>

    This customization helps you show only relevant information to your agents and keep the workflow agile.

    <Warning>
      Some properties like **date** types are not available. If you can't find a property, it's probably not supported by the current panel.
    </Warning>
  </Tab>

  <Tab title="Assignment">
    # Chat assignment configuration

    Define how chats are assigned to agents and how many conversations they can handle at the same time.

    <img src="https://mintcdn.com/trebleai/N7qFKPzh9cWmkY9Y/images/Screenshot2025-05-21at1.19.31PM.png?fit=max&auto=format&n=N7qFKPzh9cWmkY9Y&q=85&s=64f6c084f603df112467a8ad38eb9c4e" alt="Screenshot 2025-05-21 at 1.19.31 PM.png" width="2874" height="1820" data-path="images/Screenshot2025-05-21at1.19.31PM.png" />

    ### Why is it useful?

    A clear assignment configuration:

    * Prevents chats from being left unattended.
    * Reduces agent overload.
    * Aligns operations with the assignment logic defined in HubSpot (if applicable).

    ### Assignment configuration: two key elements

    Chat assignment consists of **two main elements** that you can configure according to your operation's needs:

    1. **Assignment method**
    2. **Maximum chats per agent**

    Below we explain each element:

    ***

    #### 1. Assignment method

    **What is it?**\
    The assignment method defines how it's decided which agent gets assigned each new chat.

    **There are two chat assignment methods:** a primary method (available for clients with HubSpot or Salesforce integration) and a secondary method (Treble's own).

    <Accordion title="Instructions if you are a HubSpot or Salesforce user" icon="route">
      <Info>
        You can activate or deactivate the primary method according to your needs; if you deactivate it, only the secondary method will be used to assign chats.
      </Info>

      <img src="https://mintcdn.com/trebleai/N7qFKPzh9cWmkY9Y/images/Screenshot2025-05-26at1.37.59PM.png?fit=max&auto=format&n=N7qFKPzh9cWmkY9Y&q=85&s=59bb6ca51d70a092a4b06a9c2fb51dfe" alt="Screenshot 2025-05-26 at 1.37.59 PM.png" width="2940" height="1658" data-path="images/Screenshot2025-05-26at1.37.59PM.png" />

      #### Primary method (HubSpot or Salesforce integration)

      If you have integration, you can choose for the chat to be automatically assigned to the owner agent defined in your CRM. There are three ways to do this and you can choose them by clicking the **Change method** button:

      <CardGroup cols={3}>
        <Card title="Assign immediately to owner" icon="user-check">
          The chat is assigned immediately to the owner agent, whether they are connected or not. It's the fastest and most direct option.
        </Card>

        <Card title="Wait for a time limit" icon="clock">
          Wait a defined time for the owner agent to be available. If they're not, after that time the alternative method is applied.
        </Card>

        <Card title="Only if connected" icon="user">
          The chat is only assigned if the owner agent is connected; if not, it remains pending until they connect.
        </Card>
      </CardGroup>

      #### What happens if the primary method cannot be applied?

      If the owner agent is not available (for example, not active, doesn't exist, or the waiting time is exceeded), the system can leave the chat in the waiting queue or automatically move to the secondary method to ensure the chat is attended.

      #### Secondary method (automatic fallback)

      When the primary method is not possible, Treble looks for an alternative agent **filtering available agents by tag and then applying one of the following algorithms.**

      <CardGroup cols={2}>
        <Card title="Assign to agent with fewer chats" icon="users">
          The chat is assigned to the available agent who has fewer active chats at that moment, helping to balance the workload. Only agents with the corresponding tag are considered.
        </Card>

        <Card title="Assign randomly" icon="shuffle">
          The chat is assigned randomly among available agents with the appropriate tag, always respecting configured segmentations.
        </Card>
      </CardGroup>

      <Note>
        When no agent is found within the selected tag, the system will search within the company's default tag.
      </Note>
    </Accordion>

    <Accordion title="Instructions if you don't use integrations" icon="xmark">
      If you don't use any integration, you'll find Treble's assignment method available. To choose the alternative that best fits your operation, just click the **Change method** button and choose an option.

      <img src="https://mintcdn.com/trebleai/N7qFKPzh9cWmkY9Y/images/Screenshot2025-05-26at1.36.46PM.png?fit=max&auto=format&n=N7qFKPzh9cWmkY9Y&q=85&s=7aba579e40c5cb58acb5666dfabfcb9c" alt="Screenshot 2025-05-26 at 1.36.46 PM.png" width="2936" height="1660" data-path="images/Screenshot2025-05-26at1.36.46PM.png" />

      In this Treble assignment method, it looks for an available agent **filtering them by tag and then applying one of the following algorithms.**

      <CardGroup cols={2}>
        <Card title="Assign to agent with fewer chats" icon="users">
          The chat is assigned to the available agent who has fewer active chats at that moment, helping to balance the workload. Only agents with the corresponding tag are considered.
        </Card>

        <Card title="Assign randomly" icon="shuffle">
          The chat is assigned randomly among available agents with the appropriate tag, always respecting configured segmentations.
        </Card>
      </CardGroup>

      <Note>
        When no agent is found within the selected tag, the system will search within the company's default tag.
      </Note>
    </Accordion>

    This ensures that no chat is left unattended, even if the original owner cannot receive it.

    ***

    #### 2. Maximum chats per agent

    **What is it?**\
    Allows you to define how many chats each agent can handle at the same time.

    **Options:**

    <CardGroup cols={2}>
      <Card title="Unlimited conversations" icon="infinity">
        Agents will receive all new conversations that arrive, without quantity restriction.
      </Card>

      <Card title="Limited conversations" icon="user-minus">
        You can define a maximum number of chats per agent, ideal for avoiding overload and improving attention.
      </Card>
    </CardGroup>

    Select the option that best fits your operation and adjust the number with the available controls.

    ***

    If you configure assignment properly, your team will be able to handle chats more efficiently and balanced, ensuring that no customer is left without a response.

    ## Frequently asked questions

    <AccordionGroup>
      <Accordion title="What happens if the owner agent in HubSpot is not available?">
        It depends on the chosen method. You can wait for a time, use the secondary method, or take it to a queue where it will be pending assignment.
      </Accordion>

      <Accordion title="How does Treble define which agent has fewer chats?">
        Only active chats are counted in real time, respecting configured tags.
      </Accordion>

      <Accordion title="Can I use these methods without HubSpot?">
        Yes. The secondary method is available for all accounts.
      </Accordion>

      <Accordion title="Can chats be assigned to offline agents?">
        Yes, if you choose the "assign immediately" or "assign even if not connected" method.
      </Accordion>
    </AccordionGroup>
  </Tab>
</Tabs>
