# HubSpot

Distro integrates with HubSpot to streamline your meeting scheduling workflow and keep your CRM data synchronized. This integration allows for automatic contact creation, updates, and meeting management in HubSpot.

## Connect Distro with HubSpot

{% hint style="success" %}
When connecting HubSpot, Distro requests the following permissions:

* Read and write access to contacts
* Read and write access to companies
* Read access to contact lists
* Read access to user settings
* Read access to owner information
* Write access to contact schemas
  {% endhint %}

{% stepper %}
{% step %}
Navigate to the Integrations page in your Distro dashboard

<figure><img src="/files/qTtuvhaGbQPwkBdyip21" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
Click on the HubSpot integration card
{% endstep %}

{% step %}
You'll be redirected to HubSpot's authorization page
{% endstep %}

{% step %}
Grant Distro permission to access your HubSpot account
{% endstep %}
{% endstepper %}

## What Distro Does with Your HubSpot Account

### **Contact Creation**

When enabled in your router settings, Distro can:

* Search for existing contacts by email
* Create new contacts if no matching contact is found
* Populate standard contact fields with booking information

### **Contact Updates**

When enabled, Distro can:

* Update existing contact information when matches are found
* Modify contact properties with new booking data
* Update contact ownership based on meeting assignments

### Meeting Management

Distro creates and manages meetings in HubSpot by:

* Creating meeting records when bookings are confirmed
* Updating meeting statuses (Scheduled, Rescheduled, Completed, No Show, Cancelled)
* Linking meetings to associated contacts

Setting meeting properties:

* Meeting title
* Start and end times
* Meeting location (Remote)
* Meeting status
* External meeting URL

### Create Custom Properties to Contacts

Distro transmits information about meetings and prospects by creating custom properties in HubSpot:

| Property label      | Internal field name          | Field type       |
| ------------------- | ---------------------------- | ---------------- |
| Meeting Time        | distro\_meeting\_time        | Date picker      |
| Meeting Type        | distro\_meeting\_type        | Single-line text |
| Meeting Status      | distro\_meeting\_status      | Dropdown select  |
| No Show             | distro\_no\_show             | Single checkbox  |
| Router Name         | distro\_router\_name         | Single-line text |
| Meeting Create Time | distro\_meeting\_created\_at | Date picker      |

## What Happens When a Form is Submitted?

{% @mermaid/diagram content="graph TD A\[Form Submission] --> B{Check Router Settings} B --> C{Contact Management} B --> D{Rule Evaluation}

```
C --> C1{Create Contact?}
C1 -->|Yes| C2[Create HubSpot Contact]
C1 -->|No| C3[Skip Creation]

C --> C4{Update Contact?}
C4 -->|Yes| C5[Update HubSpot Contact]
C4 -->|No| C6[Skip Update]

D --> D1{Meeting Owner in CRM?}
D1 -->|Yes| D2[Update Owner Property]
D1 -->|No| D3[Skip Owner Update]

D --> D4[Evaluate Rules]
D4 --> D5{Rule Match Found}

D5 -->|Yes| E[Meeting Creation]
D5 -->|No| F[Default Routing]

E --> G[Create Meeting Record]
G --> H[Update Contact Properties]

subgraph "Rule-Based Updates"
    D2 --> RU1[Wait 30s]
    RU1 --> RU2[Update HubSpot Assignee]
    D4 --> RU3[Apply Property Updates]
    RU3 --> RU4[Update Custom Fields]
end

subgraph "Meeting Status Updates"
    G --> MS1{Status Changes}
    MS1 -->|Scheduled| MS2[Update Status]
    MS1 -->|Rescheduled| MS3[Update Status]
    MS1 -->|Completed| MS4[Update Status]
    MS1 -->|No Show| MS5[Update Status]
    MS1 -->|Cancelled| MS6[Update Status]
end" %}
```


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.distro.so/crm/hubspot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
