Skip to main content

CRM Action

The CRM Action block writes information into HubSpot while the conversation is happening. When the contact answers something in your flow, this block saves that information in HubSpot without anyone having to do it by hand afterwards. Since September 2026 the block is no longer limited to contacts. Now you can also write into deals, companies and tickets.
This block only writes to HubSpot. If what you need is to read a piece of data from HubSpot and use it inside the conversation, use the

CRM Object

block

Before you start

  • You need the HubSpot integration connected in Treble. If you do not have it yet, check

    Install the HubSpot integration

  • Treble needs to know who the contact is. That happens automatically when the conversation starts.

Add the block to your conversation

  1. Log in to

    app.treble.ai

  2. Go to Create Conversation
  3. Click on the button to display the block menu
  4. Look for the CRM Action block and click on it to add it
  5. Move it to the position you want and connect it with the previous block
  6. Double-click on the block to open its configuration
Adding the CRM Action block to a Treble conversation

Step 1: choose the object

The first thing you configure is which HubSpot object you want to write into. Object selector in the CRM Action block

The important difference between the contact and the other objects

The contact is the person you are talking to. Treble already knows who they are, so it can write into them directly. Deals, companies and tickets are not the person. They are records that are associated with that person in HubSpot. That is why Treble first has to find which one of them to use, and that is what the hierarchy is for.
Treble can only write into deals, companies and tickets that are already associated with the contact in HubSpot. If the deal exists in your account but is not associated with that contact, Treble is not going to find it.

Step 2: the hierarchy

This is the part that raises the most doubts, so it is worth understanding it well. A contact can have several deals associated. Imagine a customer who bought from you in January, in March and in August: in HubSpot that is three deals hanging from the same contact. When your conversation says “update the deal”, Treble needs to know which of the three. The hierarchy is the rule that answers that question. Hierarchy options in the CRM Action block

How “Custom” works

You choose a property and a value. Treble keeps only the objects where that property is identical to the value. For example, property Deal stage equal to Scheduled presentation: Treble will update the contact’s deal that is in that stage.
“Custom” filters by exact equality, it does not sort. If the contact has two or more objects that meet the condition, Treble takes the first one HubSpot returns, and you do not control that order. Use a value that identifies a single record.
In the “Custom” value you can also use a Treble variable, for example {{order_number}}. That way you can find the exact deal the customer is talking to you about.
When the object is a contact, you will not see a hierarchy. It is not needed: there is only one contact.

Step 3: choose the property and the value

Next you select which property of the object you want to write and which value you want to set. The way to write the value depends on the type of property in HubSpot:

Using customer responses as the value

In text and number properties you can write a Treble variable instead of a fixed value. That way you save in HubSpot what the customer has just answered. The typical flow is two blocks:
  1. An open question: “What is the name of your company?”, saving the response in a variable called company.
  2. A CRM Action block where, in the value, you write {{company}}.
Write the variable alone, with no text around it.{{company}}Deal for {{company}}Treble replaces the whole field with the value of the variable, not only the part between braces. If you write Deal for {{company}}, in HubSpot you will not get “Deal for Acme”: you will get only “Acme”.For the same reason, only the first variable of the field is taken into account. {{firstname}} {{lastname}} will save only the first name.
If the variable is empty because the customer never got to answer that question, the block does not write anything and the conversation continues. You will not see an error.

Create a new object with this configuration

At the end of the configuration there is a toggle called Create a new object with this configuration. This toggle completely changes what the block does.
  • Off (by default): Treble looks for an object associated with the contact and updates it. It does not create anything.
  • On: Treble always creates a new object, sets the value you configured and associates it with the contact. It does not check whether one already exists.
They are two separate paths, not one. Treble does not look first and create if it does not find anything.
  • If the toggle is off and the contact does not have any deal associated, the block does nothing and the conversation moves on.
  • If the toggle is on, a new deal is created every time a customer goes through that block, even if they already had one.
When the toggle is on, the hierarchy no longer applies. Treble is not looking for anything, so there is nothing to choose between.

The whole behavior in a diagram

Advanced configuration

Inside Advanced configuration there is a single option: Real-time property update. Advanced configuration with the real-time update Normally Treble groups the writes to HubSpot and sends them in batches. This takes longer to show up inside HubSpot, but it is much safer: HubSpot limits how many requests an account can receive per minute. When you turn this option on, each write is sent to HubSpot immediately.
We recommend keeping this option off. If you turn it on, you run the risk of failures in your conversations from exceeding HubSpot’s request limit (Rate Limit).Turn it on only if the data has to be in HubSpot in that very second, for example because a HubSpot workflow is triggered by that property.
When the option is on, the block shows a red warning on the conversation canvas so you do not forget: Warning that the real-time update is active

Use cases

Set the deal stage based on what the customer answers

You ask the customer whether they want to schedule a demo. If they answer yes, a CRM Action block on the deal object, with Last created hierarchy, changes the stage to “Demo scheduled”. The sales team sees the change in their pipeline without touching anything.

Record the customer’s interest in the contact

A closed question with the options of your catalog, and a CRM Action block on the contact object that saves the chosen option in a contact property. With that you can segment campaigns later.

Create a new deal for each request

A customer who asks for a new quote every month. You turn on Create a new object with this configuration on the deal object and use {{product_of_interest}} as the name of the deal. Each request remains a separate opportunity, associated with the same contact.

Update the support ticket the customer is asking about

The customer writes their case number, you save it in a variable, and you use Custom hierarchy with the ticket number property equal to {{case_number}}. Treble updates exactly that ticket and no other.

If something does not work

I cannot find the property I want to use

Treble keeps a copy of the properties of your HubSpot account instead of requesting them every time. If you created the property recently, it is not in that copy yet. The solution is to refresh the properties with the sync button. Check

HubSpot properties in Treble

The block did not write anything in HubSpot

Check in this order:
  1. Does the contact have the object associated? If you chose deal, company or ticket and the create toggle is off, the contact has to have one associated in HubSpot. Open it in HubSpot and confirm it.
  2. Did the hierarchy leave any object out? With “Custom”, if no object meets the exact condition, there is nothing to update.
  3. Did the variable have a value? If you used {{a_variable}} and the customer never answered that question, the block does not write.
  4. Did you write text next to the variable? Check that the field contains only {{variable}}.

Duplicate deals are being created

It is the Create a new object with this configuration toggle. With that option on, a new one is created every time someone goes through the block. If what you wanted was to update the one that already exists, turn it off and use the hierarchy.

The data takes time to appear in HubSpot

This is the normal behavior: the writes are grouped and sent together. If you need it to be immediate, check the advanced configuration section of this same page.