# Getting Started

<figure><img src="/files/uu7MTcZwkPBEl9fKAQE9" alt=""><figcaption></figcaption></figure>

Distro connects website visitors to the right sales rep instantly. Our intelligent round robin scheduling helps you generate more pipeline without increasing your budget.

<a href="https://app.distro.so/users/sign_up" class="button primary">Sign Up</a> <a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/X61qUTejLBsAyjuoUhPp" class="button secondary">Quickstart</a>

### Discover Distro

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Routing</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/bCSmo2sd6WId4lYD3gwk">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/bCSmo2sd6WId4lYD3gwk</a></td></tr><tr><td>Routing Forms</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/4dFDUFid5OTbRklKDQXT">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/4dFDUFid5OTbRklKDQXT</a></td></tr><tr><td>Routing Rules</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/4HYseOttfLrJNtfiB0dC">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/4HYseOttfLrJNtfiB0dC</a></td></tr><tr><td>Event Types</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/eln2QOxJLPCyttauI23N">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/eln2QOxJLPCyttauI23N</a></td></tr><tr><td>Teams</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/8EFZHVFhsb8a0RSypn3N">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/8EFZHVFhsb8a0RSypn3N</a></td></tr><tr><td>Bookings</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/TCLdtU1fMnSyzO4rLuqx">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/TCLdtU1fMnSyzO4rLuqx</a></td></tr><tr><td>Workflows</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/rwqm2na0Wd8HhUud39fu">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/rwqm2na0Wd8HhUud39fu</a></td></tr><tr><td>CRMs</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/mYCdkEd2AiBxuzjbruaJ">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/mYCdkEd2AiBxuzjbruaJ</a></td></tr><tr><td>Integrations</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/VZwbi1jI516PB22dtsnJ">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/VZwbi1jI516PB22dtsnJ</a></td></tr><tr><td>Settings</td><td><a href="/spaces/QA3GQNrIYVrPQ90NBwRa/pages/2aHMAd9EZmE8U5WoJPTR">/spaces/QA3GQNrIYVrPQ90NBwRa/pages/2aHMAd9EZmE8U5WoJPTR</a></td></tr></tbody></table>

<br>


# Overview

<figure><img src="/files/nR2OBtNLEY4jY8wVeKF7" alt=""><figcaption></figcaption></figure>

Routing in Distro helps you efficiently connect prospects with the right members of your sales team. These features ensure that incoming leads are properly qualified and directed to the most appropriate sales representatives.

There are two types of routers for now:

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/KN2LD78U6eTPQH8ixp0P">Form Router</a></td><td>Create a Form Router to qualify and route Bookings that come in via a form submission.</td><td></td><td><a href="/pages/KN2LD78U6eTPQH8ixp0P">/pages/KN2LD78U6eTPQH8ixp0P</a></td></tr><tr><td><a href="/pages/mbkOTon88opJKV9CaDNP">Link Router</a></td><td><p>Link Routers let prospects book meetings directly from your email campaigns in "one-click".</p><p><br></p></td><td></td><td><a href="/pages/mbkOTon88opJKV9CaDNP">/pages/mbkOTon88opJKV9CaDNP</a></td></tr></tbody></table>

###


# Form Router

{% hint style="info" %}
Requirements:

* Form mapped.
* Routing Rules created.
* Event Type created.
  {% endhint %}

## **Components of a Distro Router:** <a href="#components-of-a-distro-router" id="components-of-a-distro-router"></a>

1. **Forms:** This is the initial information provided by the lead on your website. It's the starting point of the lead's journey in your system.
2. **Ownership Rules:** These rules are designed to align each lead with a specific Distro user, primarily utilized for associating existing CRM contacts with their respective owners or implementing account-based marketing strategies.
3. **Distribution Rules:** These are designed to qualify leads and allocate them either according to custom criteria or through a round-robin system when a meeting is deemed necessary.
4. **Event Type**: they allows you to determine the nature of meetings that are organized once a lead completes a specific form and qualifies for a meeting.

## Creating a Form Router

{% stepper %}
{% step %}
Navigate to **Form Routers** tab in the left sidebar

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

{% step %}
Click the "+ New Form Router" button in the top-right corner

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

{% step %}
Click on "Create Router"
{% endstep %}
{% endstepper %}

## Configure your Form Router

### Select a Matching Form

Before you can start distributing leads, you'll need to connect your inbound form with Distro. This connection lets you use any information collected in your form – whether it's shown to users or collected behind the scenes – to create smart routing rules for your leads.

[Create a routing form](/routing-forms/overview) if you have not done so yet.

<figure><img src="/files/9IsWPB3WNa7iVkd76T0E" alt=""><figcaption></figcaption></figure>

### Select Ownership Rules

Distro automatically checks if there's already a relationship established in your CRM. If there is, the lead gets directed to the right sales rep, ensuring consistent communication and avoiding any mix-ups in ownership.

These ownership rules are evaluated in order, from top to bottom. The first rule that matches will be applied, so it's important to arrange your rules in order of priority.

Your account comes pre-configured with these ownership rules:

1. Companies: New bookings are assigned to the existing company owner
2. Contacts: New bookings are assigned to the existing contact owner
3. Leads: For Salesforce users, new bookings are assigned to the existing lead owner

<figure><img src="/files/ZeYkozSs60o3wcgL6GDY" alt=""><figcaption></figcaption></figure>

### Select Distribution Rules

When new leads or meetings come in without existing relationships in your CRM, Distro uses distribution rules to assign them to your sales team. These rules ensure leads are fairly and efficiently allocated based on your team's needs and structure.

These distribution rules are evaluated in order, from top to bottom. The first rule that matches will determine the assignment, so arrange your rules with the most specific conditions at the top.

Your account can be configured with various distribution methods:

1. Round-Robin: Automatically rotates leads among team members
2. Territory-Based: Assigns leads based on geographic or market segments
3. Custom Logic: Routes leads based on specific criteria like deal size, industry, or product interest

{% hint style="info" %}
**Distribution method**:

**Strict Round-Robin**: follows a fixed rotation order. Each team member receives their next lead strictly in sequence, ensuring perfectly even distribution.

**Flexible Round-Robin**: balances distribution while considering member availability and capacity. May skip temporarily unavailable team members to maintain efficient lead routing.
{% endhint %}

<figure><img src="/files/UrYihXb4TTI0USZW2mBC" alt=""><figcaption></figcaption></figure>

### Change settings of Form Router

#### Form Router Name

Enter a descriptive name for your router that helps identify its purpose (e.g., "Account Executives - NA"). This name will be used throughout Distro to reference this specific routing configuration.

#### Event Type Selection

Choose which type of meeting this router should schedule. You can select from your existing meeting types that have been configured as booking forms.

#### Meeting Notes

* Enable "Allow prospects to add notes to their booking" to let prospects provide additional context or questions when scheduling their meeting
* When enabled, prospects can share important information that helps prepare your team for the meeting

#### Email Processing

* Enable "Remove suffixes from prospect emails after '+'" to standardize email handling
* Example: '<adrien+test@distro.so>' will be processed as '<adrien@distro.so>'
* This helps prevent duplicate leads and ensures consistent matching in your CRM

### Redirect URLs

Configure where prospects should be directed after different booking outcomes:

#### Successful Booking

* Set the "Booked Meeting Redirect URL" to specify where prospects are sent after successfully scheduling a meeting
* Example: <https://example.com/booked-meeting>

#### No Booking

* Set the "No Booking Redirect URL" to specify where prospects are sent when no booking has been made.
* Example: <https://example.com/no-booking>

#### Disqualified

* Set the "Disqualified Redirect URL" to specify where prospects are sent if they don't meet qualification criteria
* Example: <https://example.com/disqualified>

<figure><img src="/files/3qKIepe1OSCVGUywTciG" alt=""><figcaption></figcaption></figure>

### Select How Distro Sync Data to CRM

Configure how Distro should create and update records in your CRM when leads submit forms and book meetings. These settings ensure your CRM data stays accurate and up-to-date.

{% hint style="info" %}
Note: records must exist in your CRM or be created by Distro to update ownership. Updates will only occur if the corresponding options are enabled.
{% endhint %}

{% tabs %}
{% tab title="HubSpot" %}
**Create contact if does not exist**

* Enable this setting to automatically create new contacts in Hubspot when no matching contact is found
* Keeps your CRM database growing with new prospects

**Update existing contact fields**

* When enabled, Distro will update contact information in Hubspot when matching contacts are found
* Ensures contact data stays current with the latest form submissions

**Create meeting**

* Creates a meeting record in Hubspot when a booking is confirmed
* Maintains a complete history of prospect interactions
  {% endtab %}

{% tab title="Salesforce" %}
{% hint style="danger" %}
In Salesforce, a record can either be a Lead OR a Contact, but not both. Choose which type of record you want Distro to create based on your sales process.
{% endhint %}

**Create lead if does not exist**

* Creates a new lead in Salesforce when no matching lead or contact is found
* Helps capture all new prospects in your pipeline

**Create contact if does not exist**

* Automatically creates new contacts in Salesforce when no matching contact exists
* Works in conjunction with lead creation settings

**Create account if does not exist**

* Creates a new account in Salesforce when needed for contact creation
* Ensures proper record relationships are maintained

**Update existing lead fields**

* Updates lead information in Salesforce when matching leads are found
* Keeps lead data synchronized with new form submissions

**Update existing contact fields**

* Updates contact information in Salesforce when matching contacts are found
* Maintains accurate contact records

**Create activity**

* Creates an activity record in Salesforce when a booking is confirmed
* Tracks all prospect interactions within Salesforce
  {% endtab %}
  {% endtabs %}

### Install Form Router

After configuring your router settings, you'll need to install the router on your webpage to start capturing and routing leads. Add the following code snippet to your website:

1. Copy the router code snippet

* Add this code to your website's HTML, preferably just before the closing \</body> tag
* The code includes Distro's JavaScript library and your unique router configuration

```javascript
javascriptCopy<script type="text/javascript" src="https://app.distro.so/inbound.js"></script>
<script type="text/javascript">
window.distro = new Distro({ routerId: '36' })
distro.schedule('#hsForm_3c2cf1b6-c45d-47c2-a06d-ccc792b37595')
</script>
```

2. Verify installation

* After adding the code, verify that your form is properly connected to Distro
* Test the form submission to ensure leads are being routed correctly


# Distribution Method

Understanding Distro's Round Robin Meeting Distribution Methods

## Flexible and strict round robin <a href="#flexible-and-strict-round-robin" id="flexible-and-strict-round-robin"></a>

With the choice between Strict Round Robin and Flexible Round Robin, you can tailor the meeting booking experience to align with your team's operational needs and objectives. This guide outlines how to configure your preferred round robin method and dives into the specifics of each approach, complete with practical examples to illustrate their application in real-world scenarios.

## Configuring Round Robin Settings <a href="#configuring-round-robin-settings" id="configuring-round-robin-settings"></a>

<figure><img src="/files/7ZkMZltT2tg6yYuXJScq" alt=""><figcaption></figcaption></figure>

To set up your round robin method in Distro, start by accessing your router's configuration:

1. From the Distro interface, navigate to "Distribution Rules" found within the left navigation panel of your chosen router.
2. Use the dropdown menu to select your desired meeting distribution method—either Strict or Flexible Round Robin.
3. Save your settings to apply the changes.

### Strict round robin

The Strict Round Robin approach ensures a sequential and equitable distribution of meeting opportunities among your team members. When a prospect initiates the booking process, they are presented with the available time slots of the next team member in the predetermined round robin sequence. This method guarantees that each member receives meetings in a fair and orderly manner, without any bias.

* **Example Scenario:**
  * **Team Composition:** Alex, Taylor, and Jordan employ the Strict Round Robin method.
  * **Process:** Starting with Alex, the round robin sequence dictates that Sam's booking shows only Alex's slots, leading to an even spread of meetings as the sequence progresses through Taylor and Jordan.
  * **Outcome:** Each team member receives meetings turn by turn, promoting an equal workload distribution and preventing overburdening.

### Flexible round robin <a href="#flexible-round-robin" id="flexible-round-robin"></a>

The Flexible Round Robin method offers prospects a view of all available time slots across team members for any given day, thereby increasing the likelihood of meeting bookings by presenting a wider range of scheduling options. When multiple members are available for the same slot, the system allocates the meeting to the one with the fewest scheduled meetings, maintaining balance in workload distribution.

* **Example Scenario:**
  * **Team Dynamics:** Alex, Taylor, and Jordan apply the Flexible Round Robin method.
  * **Booking Process:** Casey, a prospect, chooses a slot available to both Taylor and Jordan, leading to an assignment based on current meeting counts or randomly if counts are equal.
  * **Result:** This approach not only ensures a fair share of meetings for each team member but also enhances the booking experience for prospects by offering more flexibility and availability.

{% hint style="info" %}
Should the user try to reschedule the meeting, the times shown will correspond to those previously set for the assigned user.
{% endhint %}

Whether your team benefits more from the predictability and fairness of Strict Round Robin or the flexibility and increased booking potential of Flexible Round Robin, Distro provides the tools to optimize your meeting distribution strategy. By understanding and applying the method best suited to your team's needs, you can enhance both team efficiency and prospect satisfaction.


# Install Router on Framer

Installing a Distro Router on your Framer website enables you to efficiently qualify and route bookings that come from form submissions. This integration connects your Framer forms with Distro, allowing for automated meeting scheduling based on your configured routing rules.

{% hint style="info" %}
When you integrate Distro with your Framer website:

* Your form continues to function exactly as before
* Distro only activates the scheduling widget when a form is submitted
* There is no interference with your current form setup or data collection processes
  {% endhint %}

<figure><img src="/files/1QDmKIrNuw0pOOdSdwGv" alt=""><figcaption></figcaption></figure>

### Installation Steps

{% stepper %}
{% step %}
Log into your Framer account
{% endstep %}

{% step %}
Navigate to the page where you want to add the Distro router in the sidebar
{% endstep %}

{% step %}
Locate and select the "Settings" option
{% endstep %}

{% step %}
In the Settings panel, scroll down to the "Custom Code" section
{% endstep %}

{% step %}
Look for the textarea labeled "End of `<body>` tag"
{% endstep %}

{% step %}
Add the following code snippet into this textarea:

```javascript
<script type="text/javascript" src="https://app.distro.so/inbound.js"></script>
<script type="text/javascript">
window.distro = new Distro({ routerId: 'replaceWithRouterId' })
distro.schedule('#replaceWithFormId')
</script>
```

{% endstep %}
{% endstepper %}

#### Verifying Installation

After adding the code:

1. Save your changes in Framer
2. Preview your page to ensure it loads correctly
3. Test the form submission to confirm that the Distro scheduling process activates

### Important Notes

* The code must be placed in the "End of `<body>` tag" section to ensure proper loading
* The form selector (e.g., `#contact_sales`) must match exactly with your form's ID
* If you have multiple forms on your page, you'll need to specify the correct form selector

By following these steps, your Framer website will be successfully connected to Distro, enabling automated meeting scheduling for your qualified leads.


# Reporting


# Routing Insights

Track conversions, spot routing gaps, and compare router and rule performance.

Routing Insights is the analytics dashboard for Form Router. Use it to measure conversion and fix routing gaps.

{% hint style="info" %}
Use this page when you need answers like:

* “Where do submissions drop off?”
* “Which router converts best?”
* “Which rule is qualifying bad-fit leads?”
  {% endhint %}

### Open Routing Insights

{% stepper %}
{% step %}
Open **Form Routers** from the left sidebar.

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

{% step %}
Click **Routing Insights**.

<figure><img src="/files/6MvOQqB6372dF7RFrFYe" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### Recommended workflow

Follow this flow every time. It keeps analysis consistent.

{% stepper %}
{% step %}
Set your scope with filters.
{% endstep %}

{% step %}
Scan KPI cards for volume and rates.
{% endstep %}

{% step %}
Use the funnel to find the drop-off stage.
{% endstep %}

{% step %}
Compare routers to spot outliers.
{% endstep %}

{% step %}
Compare rules to find the root cause.
{% endstep %}

{% step %}
Click into records to confirm the “why”.
{% endstep %}
{% endstepper %}

### Set your scope (filters)

Filters control everything on the page. Start here.

* **Router**: focus on one or more routers.
* **Rule**: focus on a specific ownership or distribution rule.
* **Date range**: last 7/30/90 days, or a custom range.

### Definitions

<details>

<summary>Qualified vs unqualified</summary>

**Qualified** means a submission matched a routing rule. **Unqualified** means no routing rule matched.

</details>

<details>

<summary>Booked vs not booked</summary>

**Meeting booked** means a qualified submission booked a meeting. **Not booked** means the booking flow did not complete.

</details>

### KPI cards

Use KPI cards for quick health checks. They reflect your current filters.

* **Forms submitted**: total submissions processed by routers.
* **Unqualified**: submissions that matched no routing rules.
* **Qualified**: submissions that matched a rule and were assigned.
* **Meeting booked**: qualified submissions that booked a meeting.
* **Not booked**: qualified submissions without a booking.

<figure><img src="/files/Zw1xJA9tkTErHUwEpcNT" alt=""><figcaption></figcaption></figure>

### Routing funnel

<figure><img src="/files/9ZNlIKzBPVlLD1FHtqlg" alt=""><figcaption></figcaption></figure>

Use the funnel to locate the first drop. Then drill into that stage.

The funnel follows this sequence:

1. **Submissions**
2. **Qualified / Unqualified**
3. **Booked / Not booked**

Select any bar to see the underlying submissions.

#### Conversion rates

* **Qualification rate** = `Qualified ÷ Forms submitted`
* **Booking rate** = `Meeting booked ÷ Qualified`

### Router performance

<figure><img src="/files/aZ1bgGP5lrldH7NkgsTE" alt=""><figcaption></figcaption></figure>

Use this view to compare routers. Look for outliers.

Start with:

* High **qualified** volume with low **booked**.
* Routers with sudden week-over-week drops.

#### Router table

Use the table to sort and rank routers. These columns matter most:

* **Qualified**
* **Booked**
* **Not booked**
* **Conv. rate**

### Rules performance

<figure><img src="/files/4p05NPT0HYtOthLTMS3j" alt=""><figcaption></figcaption></figure>

Use this view to compare individual rules. This is usually where you find the fix.

Look for:

* Rules that qualify, but rarely book.
* Rules with zero matches.
* Rules that dominate volume.

### Drill into submission details

<figure><img src="/files/eUOVSyMvuzPIbYAVXhjP" alt=""><figcaption></figcaption></figure>

Most charts are clickable. A details panel opens.

Use it to confirm:

* Which rule matched.
* Who got assigned.
* What happened in the booking flow.
* When each step happened.

### Diagnose common problems

{% tabs %}
{% tab title="Low qualification rate" %}
This is usually a rules issue. Start with unqualified records.

Do these checks:

1. Compare unqualified submissions by form or router.
2. Verify field mapping for the key qualifying fields.
3. Loosen conditions or add a fallback rule.
   {% endtab %}

{% tab title="Low booking rate" %}
This is usually availability or booking flow. Start with not-booked records.

Do these checks:

1. Confirm calendars are connected for assignees.
2. Verify event type settings and booking link behavior.
3. Look for patterns by router, rule, or date.
   {% endtab %}
   {% endtabs %}

### Monitoring cadence

Review weekly. Compare the last 7 days to the prior 7 days. Investigate drops immediately.


# Booking Insights

Track booking distribution, outcomes, and trends for Form Router traffic.

Form Router Booking Insights is a visual dashboard for bookings generated by Form Routers.

Use it to monitor booking outcomes and workload distribution.

{% hint style="info" %}
Use this page when you need answers like:

* “Who is getting the most routed meetings?”
* “Are cancellations or no-shows trending up?”
* “Did performance change vs last week?”
  {% endhint %}

### Open Booking Insights

{% stepper %}
{% step %}
Open **Form Routers** from the left sidebar.

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

{% step %}
Click **Booking Insights**.
{% endstep %}
{% endstepper %}

### Recommended workflow

Run this flow weekly. It keeps analysis consistent.

{% stepper %}
{% step %}
Set your scope with filters.
{% endstep %}

{% step %}
Scan status KPI cards for volume and mix.
{% endstep %}

{% step %}
Review distribution across owners.
{% endstep %}

{% step %}
Enable period comparison to spot trend changes.
{% endstep %}

{% step %}
Click into bars to inspect booking lists.
{% endstep %}
{% endstepper %}

### KPI cards (booking status)

<figure><img src="/files/Ff7TOIXMKTT1JjfNYpNv" alt=""><figcaption></figcaption></figure>

The dashboard shows one KPI card per booking status.

| Status          | Description                                 |
| --------------- | ------------------------------------------- |
| **Scheduled**   | Upcoming meetings that haven’t happened yet |
| **Completed**   | Meetings that took place as scheduled       |
| **Rescheduled** | Meetings moved to a different time          |
| **Cancelled**   | Meetings cancelled before occurring         |
| **No show**     | Meetings where the guest didn’t attend      |

Each card shows the total count for the selected date range.

### Booking distribution chart

<figure><img src="/files/5p5WojKBTHjJYlQVMLkt" alt=""><figcaption></figcaption></figure>

The main chart is a stacked bar chart.

It shows how bookings are distributed across team members.

#### Understanding the chart

* **X-axis**: team members (name or email).
* **Y-axis**: number of bookings.
* **Segments**: each color is a booking status.
* **Hover**: tooltip shows the per-status breakdown.

Team members are sorted by total bookings (descending).

#### Reading the chart

1. Taller bars mean a team member receives more routed bookings.
2. Segment size shows status mix for that person.
3. Compare totals to validate workload balance.

### Compare vs previous period

<figure><img src="/files/2VxSEaNeaaZlw91RIcZz" alt=""><figcaption></figcaption></figure>

Toggle **Compare vs Previous Period** to see current vs prior performance.

* Last 7 days compares to the 7 days before.
* Last 30 days compares to the prior 30.
* Side-by-side bars show current (solid) and previous (faded).

#### What changes when comparison is enabled

* KPI cards show percentage deltas.
* Previous totals appear below current totals.
* Trend changes become obvious fast.

### Set your scope (filters)

Filters control everything on the page.

* **Booking owner**: focus on one or more team members.
* **Router**: analyze one or multiple form routers.
* **Rule**: filter by the rule matched at booking time.
* **Date range**: last 7/30/90 days, or a custom range.

### Drill into details

<figure><img src="/files/4iQtnPdFFD6HYhp8nyRh" alt=""><figcaption></figcaption></figure>

Click any bar segment to open a details panel.

Use it to review:

* Booking list for that team member.
* Guest name and email.
* Booking date and time.
* Router and matched rule.
* Current booking status.
* Link to full booking details.

### Form Router vs Click Router booking insights

Both dashboards look similar. The context differs.

| Aspect         | Form Router                      | Click Router                     |
| -------------- | -------------------------------- | -------------------------------- |
| **Source**     | Form submissions                 | Click-based routing links        |
| **Rule types** | Ownership and distribution rules | Matching and ownership logic     |
| **Context**    | Form data and field matching     | URL params and direct link flows |

### How to interpret the data

#### Identify workload imbalances

Compare bar heights across team members.

Very uneven distribution can indicate rule or distribution issues.

#### Track status trends

Watch the status mix over time.

* High **cancelled** can indicate scheduling friction.
* High **no show** can indicate reminder or confirmation issues.
* Frequent **rescheduled** can indicate availability gaps.

#### Use period-over-period comparison

Use comparison mode to:

* Spot improving or declining trends.
* Identify seasonal patterns in booking volume.
* Measure the impact of routing changes.

### Best practices

{% tabs %}
{% tab title="Regular monitoring" %}

* Review weekly.
* Use comparison mode by default.
* Investigate anomalies immediately.
  {% endtab %}

{% tab title="Balance workload" %}

* Watch for owners with outsized volume.
* Adjust distribution rules when someone is overloaded.
* Re-check after territory or capacity changes.
  {% endtab %}

{% tab title="Reduce cancellations and no-shows" %}

* Review cancelled and no-show bookings for patterns.
* Improve confirmation communications.
* Make rescheduling easy.
  {% endtab %}
  {% endtabs %}


# Click Router

Click routers create trackable links that intelligently route prospects to the right team members based on your configured rules. They're perfect for email campaigns, marketing materials, and website CTAs.

### When to Use Click Routers

* **Email Campaigns**: Send personalized booking links that route to the right rep
* **Marketing Materials**: Include smart links in PDFs, presentations, or digital content
* **Website CTAs**: Replace generic "Book a Demo" buttons with intelligent routing
* **Account-Based Marketing**: Route prospects from target accounts to specific reps

### Creating a Click Router

{% stepper %}
{% step %}
Navigate to **Routing → Click Routers** in your dashboard

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

{% step %}
Click **New Click Router**
{% endstep %}

{% step %}
Enter a descriptive name (e.g., "Q2 Email Campaign - Enterprise Leads")

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

{% step %}
Select the meeting type prospects will book
{% endstep %}

{% step %}
Configure settings as detailed below
{% endstep %}
{% endstepper %}

### Configuration Options

#### Basic Settings

| Setting            | Description                                           | Example                                         |
| ------------------ | ----------------------------------------------------- | ----------------------------------------------- |
| **Title**          | Descriptive name for internal reference               | "EMEA Outbound Campaign"                        |
| **Meeting Type**   | The calendar event type to be booked                  | "30-Minute Discovery Call"                      |
| **Display Notes**  | Allow prospects to add notes when booking             | Enable for qualification info                   |
| **Strip Emails**   | Remove email suffixes                                 | <adrien+1@distro.so> becomes <adrien@distro.so> |
| **Redirect URL**   | URL to redirect users after booking                   | "<https://example.com/thank-you>"               |
| **Default Guests** | Additional email addresses to include on all meetings | "<manager@company.com>"                         |

**Real-life example**: A sales team creates separate click routers for different regions (NA, EMEA, APAC) with region-specific meeting types and team assignments.

<figure><img src="/files/0KHGFm6Xjz35l7Ug3KhE" alt=""><figcaption></figcaption></figure>

#### Ownership Rules

Ownership rules determine if a prospect already has an owner in your CRM. When enabled, the system checks if the prospect exists in your CRM and routes them to their assigned owner.

<figure><img src="/files/oZ6QotmknFp2bHNgYStH" alt=""><figcaption></figcaption></figure>

**How it works**:

1. Enable ownership matching by toggling "Do you want to assign prospects to existing CRM record owners?"
2. When a prospect clicks your link, the system checks your CRM for matching records
3. If a match is found with an owner who's a user in your system, the meeting is assigned to them
4. If no match or no owner is found, fallback assignment rules apply

**Real-life example**: An enterprise SaaS company uses ownership rules to ensure that when existing customers click on educational webinar links, they're always routed to their assigned account manager rather than a new sales rep.

**CRM Record Lookup Options**

| Setting                           | Description                                         | When to Use                       |
| --------------------------------- | --------------------------------------------------- | --------------------------------- |
| **Match with existing contacts**  | Checks if the prospect exists as a contact          | Standard B2B sales process        |
| **Match with existing companies** | Checks if the prospect's domain exists as a company | Account-based routing             |
| **Match with existing leads**     | Checks if the prospect exists as a lead             | For lead-based sales processes    |
| **Exact match required**          | Requires exact email match vs. domain match         | When precise matching is critical |

#### Distribution Settings

<figure><img src="/files/PvsP5W3pECoRr5JIZIsq" alt=""><figcaption></figcaption></figure>

If no owner is found or ownership matching is disabled, meetings are distributed according to these settings:

| Setting                   | Description                                    | Example Use Case                     |
| ------------------------- | ---------------------------------------------- | ------------------------------------ |
| **All team members**      | Distribute among everyone on the selected team | General inbound requests             |
| **Selected members**      | Distribute only among specific team members    | Specialized product demos            |
| **Round Robin Type**      | Choose between strict or flexible assignment   | See details below                    |
| **Weighted distribution** | Distribute based on assigned weights           | Ramp-up for new reps (lower weights) |

**Round Robin Types**

| Type         | Description                                                                   | Best For                         |
| ------------ | ----------------------------------------------------------------------------- | -------------------------------- |
| **Strict**   | Assigns meetings in a fixed rotation regardless of availability               | Equal distribution of leads      |
| **Flexible** | Assigns based on availability at the time the prospect selects a meeting slot | Maximizing calendar availability |

**Real-life example**: A company's SDR team uses weighted distribution for their main demo request link, giving senior reps a weight of 3 and new reps a weight of 1 during their first month to help with ramping.

#### Advanced Assignment Features

The system includes several advanced assignment features:

* **Resettable Round Robin**: Assignments reset on a daily, weekly, or monthly basis
* **Vacation Compensation**: Users on vacation are skipped, and their assignments are compensated when they return
* **Meeting Credits**: Administrators can assign credits to specific users to prioritize them in the assignment queue
* **Recent Assignment Memory**: If the same email address books within a 2-hour window, they'll be assigned to the same rep

**Real-life example**: A company uses meeting credits to ensure new sales reps get priority in the assignment queue for their first week, helping them build their pipeline quickly.

#### CRM Integration

| Setting                      | Description                                            | Benefit                           |
| ---------------------------- | ------------------------------------------------------ | --------------------------------- |
| **Create/update records**    | Automatically create or update CRM records             | Ensures data consistency          |
| **Record Type**              | Choose between contacts or leads for record creation   | Matches your sales process        |
| **Set meeting owner in CRM** | Update the CRM record owner to match the meeting owner | Maintains proper ownership        |
| **Create meeting in CRM**    | Create a calendar event in your CRM                    | Keeps all activities in one place |

**Real-life example**: A marketing team configures their webinar registration click router to automatically create contacts in HubSpot and assign the webinar host as the contact owner, ensuring proper follow-up.

<figure><img src="/files/zTii9OL2NSpB8YnVZKfd" alt=""><figcaption></figcaption></figure>

### Installation Examples

#### HubSpot Email Campaign

```html
<a href="https://app.example.com/clicks/abc123?name={{contact.firstname}}&email={{contact.email}}&company={{company.name}}">
  Schedule your personalized demo
</a>
```

#### Outreach Sequence

```html
<a href="https://app.example.com/clicks/abc123?name={{first_name}}&email={{email}}">
  Book a quick call with our team
</a>
```

#### Website Button (with Google Analytics tracking)

```html
<a href="https://app.example.com/clicks/abc123"
   onclick="ga('send', 'event', 'Button', 'Click', 'Demo Request');">
  Request Demo
</a>
```

### Monitoring Performance

Track the performance of your click routers through the analytics dashboard:

* Click-to-meeting conversion rates
* Distribution accuracy
* Rule match effectiveness
* User assignment statistics

Regularly review these metrics to optimize your routing rules and improve conversion rates.

### Troubleshooting

| Issue                                    | Possible Solution                                                     |
| ---------------------------------------- | --------------------------------------------------------------------- |
| **Prospects not being routed correctly** | Check your rule conditions and ensure CRM fields are mapped correctly |
| **No available meeting slots**           | Verify team member availability and calendar connections              |
| **CRM records not being created**        | Check CRM connection status and field mappings                        |
| **Uneven distribution of meetings**      | Review assignment history and adjust weights or round robin settings  |

### Best Practices

1. **Use descriptive names** for your click routers that indicate their purpose and target audience
2. **Start with simple rules** and add complexity as needed
3. **Test your click routers** before using them in production campaigns
4. **Monitor performance** regularly and adjust settings as needed
5. **Use different click routers** for different campaigns to track performance separately
6. **Include UTM parameters** in your links to track campaign performance in your analytics tools


# Reporting


# Routing Insights

Track click-to-meeting conversions, compare routers, and spot drop-offs.

Click Router Insights is the analytics dashboard for Click Routers.

Use it to track click-to-meeting conversion and router performance.

{% hint style="info" %}
Use this page when you need answers like:

* “How many clicks convert to meetings?”
* “Which click router converts best?”
* “Where do prospects drop off?”
  {% endhint %}

### Open Routing Insights

{% stepper %}
{% step %}
Open **Click Routers** from the left sidebar.

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

{% step %}
Click **Routing Insights**.
{% endstep %}
{% endstepper %}

### Recommended workflow

Follow this flow every time. It keeps analysis consistent.

{% stepper %}
{% step %}
Set your scope with filters.
{% endstep %}

{% step %}
Scan KPI cards for volume and rates.
{% endstep %}

{% step %}
Use the funnel to find the drop-off stage.
{% endstep %}

{% step %}
Review trends over time.
{% endstep %}

{% step %}
Compare routers to spot outliers.
{% endstep %}

{% step %}
Drill into records to confirm the “why”.
{% endstep %}
{% endstepper %}

### KPI cards (key metrics)

<figure><img src="/files/io69kgUQzASuPcKphLJW" alt=""><figcaption></figcaption></figure>

The dashboard shows three primary KPIs.

* **Clicks**: total router link clicks.
* **Booked**: clicks that resulted in a meeting being booked.
* **Not booked**: clicks where no meeting was booked.

Each KPI shows a count and a conversion percentage.

#### Conversion rate

* **Booking rate** = `Booked ÷ Clicks`

### Conversion funnel

The funnel visualizes the click-to-booking pipeline.

1. **Clicks**
2. **Meeting booked** (green)
3. **Meeting not booked** (gray)

#### Interpreting the funnel

A healthy funnel has a high booking rate.

Large drop-offs usually come from:

* Limited user availability.
* Booking link configuration issues.
* No time slots.
* Friction in the booking UX.

### Trend analysis

<figure><img src="/files/nOLPzeaBSaQo14BoNrnU" alt=""><figcaption></figcaption></figure>

The trend chart shows performance over time.

* **X-axis**: date range.
* **Y-axis**: clicks and bookings.
* **Lines**: individual router performance.

#### Using the trend chart

Use the trend chart to:

* Identify seasonal patterns or day-of-week variation.
* Spot sudden drops that may indicate technical issues.
* Compare before and after configuration changes.

Select a point to drill into that router’s booking details.

### Individual router performance

<figure><img src="/files/4039Ex8bPlv3clJR56Eq" alt=""><figcaption></figcaption></figure>

Below the trend chart, cards summarize each router.

Each card includes:

* **Total clicks**
* **Booked**
* **Not booked**
* **Conversion rate**

Select a router card to open a details slideover.

### Set your scope (filters)

Filters control everything on the page.

#### Router filter

Select one or more routers.

By default, the top 5 routers are shown.

#### Rule filter

Filter by ownership rules applied to click routers.

#### Date range

Use a preset range or set a custom range.

* Last 7 days
* Last 30 days
* Last 90 days
* Custom range

#### Single router view

Toggle **Show Single Router** to focus on one router.

This unlocks:

* More detailed trend analysis.
* Period-over-period comparison.
* Focused performance review.

### Drill into booking details

<figure><img src="/files/y8KtCQ6V4xMfc1ctsyPC" alt=""><figcaption></figcaption></figure>

Select chart elements or router cards to open a details panel.

Use it to review:

* Individual booking records.
* Guest details.
* Booking timestamps.
* Assigned team member.
* Meeting details (duration, type).
* Cancellation and reschedule status.

### Best practices

{% tabs %}
{% tab title="Improve click-to-booking rate" %}

1. **Optimize availability**. Ensure assignees have open slots.
2. **Reduce friction**. Minimize required fields before booking.
3. **Validate rules**. Confirm ownership rules match as expected.
4. **Confirm time zones**. Check workspace and user time zones.
   {% endtab %}

{% tab title="Monitor performance" %}

1. Review insights weekly.
2. Compare the current period to the prior period.
3. Investigate sudden drops immediately.
4. Re-check after any routing configuration change.
   {% endtab %}

{% tab title="Identify issues" %}
Low conversion rates often point to:

* Assignees with no availability.
* Restrictive buffers or booking windows.
* Time zone misconfiguration.
* Broken calendar integrations.
  {% endtab %}
  {% endtabs %}


# Booking Insights

Track booking distribution and outcomes for Click Router traffic.

Click Router Booking Insights is a visual dashboard for bookings generated by click-based routing.

Use it to monitor booking outcomes and workload distribution.

{% hint style="info" %}
Use this page when you need answers like:

* “Who is getting the most click-router meetings?”
* “Are cancellations or no-shows trending up?”
* “Did performance change vs last week?”
  {% endhint %}

### Open Booking Insights

{% stepper %}
{% step %}
Open **Click Routers** from the left sidebar.

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

{% step %}
Click **Booking Insights**.
{% endstep %}
{% endstepper %}

### Recommended workflow

Run this flow weekly. It keeps analysis consistent.

{% stepper %}
{% step %}
Set your scope with filters.
{% endstep %}

{% step %}
Scan status KPI cards for volume and mix.
{% endstep %}

{% step %}
Review distribution across owners.
{% endstep %}

{% step %}
Enable period comparison to spot trend changes.
{% endstep %}

{% step %}
Click into bars to inspect booking lists.
{% endstep %}
{% endstepper %}

### KPI cards (booking status)

<figure><img src="/files/kouHkfywErknZMqsGAsm" alt=""><figcaption></figcaption></figure>

The dashboard shows one KPI card per booking status.

| Status          | Description                                 |
| --------------- | ------------------------------------------- |
| **Scheduled**   | Upcoming meetings that haven’t happened yet |
| **Completed**   | Meetings that took place as scheduled       |
| **Rescheduled** | Meetings moved to a different time          |
| **Cancelled**   | Meetings cancelled before occurring         |
| **No show**     | Meetings where the guest didn’t attend      |

Each card shows the total count for the selected date range.

### Booking distribution chart

<figure><img src="/files/IfcsQ7MX7bdyZsSY43rU" alt=""><figcaption></figcaption></figure>

The main chart is a stacked bar chart.

It shows how click-router bookings are distributed across team members.

#### Understanding the chart

* **X-axis**: team members (name or email).
* **Y-axis**: number of bookings.
* **Segments**: each color is a booking status.
* **Hover**: tooltip shows the per-status breakdown.

Team members are sorted by total bookings (descending).

#### Reading the chart

1. Taller bars mean a team member receives more click-router bookings.
2. Segment size shows status mix for that person.
3. Compare totals to validate workload balance.

### Compare vs previous period

<figure><img src="/files/hAuVxu42yxTVpZ1rOsHz" alt=""><figcaption></figcaption></figure>

Toggle **Compare vs Previous Period** to see current vs prior performance.

* Last 7 days compares to the 7 days before.
* Last 30 days compares to the prior 30.
* Side-by-side bars show current (solid) and previous (faded).

#### What changes when comparison is enabled

* KPI cards show percentage deltas.
* Previous totals appear below current totals.
* Trend changes become obvious fast.

### Set your scope (filters)

Filters control everything on the page.

* **Booking owner**: focus on one or more team members.
* **Router**: analyze one or multiple click routers.
* **Rule**: filter by the matching rule applied at booking time.
* **Date range**: last 7/30/90 days, or a custom range.

### Drill into details

<figure><img src="/files/01LQqIwg0pKSrsnvcfny" alt=""><figcaption></figcaption></figure>

Click any bar segment to open a details panel.

Use it to review:

* Booking list for that team member.
* Guest name and email.
* Booking date and time.
* Router and matching rule.
* Current booking status.
* Routing logs link (if available).

### Click Router vs Form Router booking insights

Both dashboards look similar. The context differs.

| Aspect         | Click Router                     | Form Router                      |
| -------------- | -------------------------------- | -------------------------------- |
| **Source**     | Click-based routing links        | Form submissions                 |
| **Rule types** | Matching and ownership logic     | Ownership and distribution rules |
| **Context**    | URL params and direct link flows | Form data and field matching     |

### How to interpret the data

#### Understand distribution

Click routers often route based on URL parameters or ownership checks.

Distribution tells you:

* Which team members rules are matching.
* Whether ownership logic is overriding expected routing.

#### Track performance trends

Monitor the status mix over time.

* High **completed** share usually means healthy scheduling.
* Rising **cancelled** or **no show** often needs follow-up.
* Compare routers to identify best-performing configurations.

#### Optimize click router rules

Use insights to:

* Confirm rules are distributing fairly.
* Adjust ownership settings if workload is skewed.
* Tighten or loosen rule conditions based on outcomes.

### Best practices

{% tabs %}
{% tab title="Regular monitoring" %}

* Review weekly.
* Use comparison mode by default.
* Investigate anomalies immediately.
  {% endtab %}

{% tab title="Balance workload" %}

* Watch for owners with outsized volume.
* Adjust matching and ownership logic as needed.
* Account for capacity and availability changes.
  {% endtab %}

{% tab title="Improve outcomes" %}

* Review cancelled and no-show bookings.
* Look for patterns by router, owner, and time.
* Improve confirmation and reminder workflows.
  {% endtab %}
  {% endtabs %}


# Overview

<figure><img src="/files/XILCQ5SLo9SujpQD1oYy" alt=""><figcaption></figcaption></figure>

Form field mapping in Distro connects your web form fields to your routing system, enabling intelligent meeting distribution based on the information your prospects provide.

{% hint style="success" %}
When you integrate Distro with your web forms, it simply listens for form submissions to trigger the scheduling experience. This means:

* Your form continues to function exactly as before
* Distro only activates the scheduling widget when a form is submitted
* No interference with your current form setup or data collection processes
  {% endhint %}

### How to map your web forms

{% stepper %}
{% step %}
Navigate to **Form Routers** in the sidebar
{% endstep %}

{% step %}
Select "Forms"
{% endstep %}

{% step %}
Click "+ New Form"

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

{% step %}
Enter a title for the form

* Enter a unique, descriptive name for your form
* This name will be used for identification within Distro
* Example: "Marketing Website Contact Form"

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

{% step %}
Enter the form selector

View how to integrate the different forms below
{% endstep %}

{% step %}
Map the different fields between your form and your crm fields
{% endstep %}
{% endstepper %}

### Supported Forms

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/Kp4zBRZFhdnEOYvXxPuu">Custom HTML form</a></td><td></td><td></td><td><a href="/pages/Kp4zBRZFhdnEOYvXxPuu">/pages/Kp4zBRZFhdnEOYvXxPuu</a></td></tr><tr><td><a href="/pages/skMvNgjaWk9AZkhCW7mx">HubSpot form</a></td><td></td><td></td><td><a href="/pages/skMvNgjaWk9AZkhCW7mx">/pages/skMvNgjaWk9AZkhCW7mx</a></td></tr><tr><td><a href="/pages/h3g4vQMjFDVi8FJLT7Ym">Marketo</a></td><td></td><td></td><td><a href="/pages/h3g4vQMjFDVi8FJLT7Ym">/pages/h3g4vQMjFDVi8FJLT7Ym</a></td></tr></tbody></table>


# Custom HTML Form

This documentation outlines the process of integrating Distro's scheduling functionality with custom HTML forms on your web pages.

### How to Map Your Custom HTML Form

{% stepper %}
{% step %}
**Form Identification**

Locate and note the unique identifier associated with your custom HTML form.

<figure><img src="/files/diEAmGYpblTl5wR3B0I4" alt=""><figcaption></figcaption></figure>

Here's how to find a form's unique ID:

1. Open your web browser (Chrome, Firefox, etc.)
2. Right-click on the form or page area you want to inspect
   * In this case, you'd right-click on the Screendesk contact form
3. Click "Inspect" or "Inspect Element" from the menu that appears
   * This will open the Developer Tools panel (which is what we see in the right side of your image)
4. In the Developer Tools panel, look for HTML code that includes the word "form"
   * In your image, we can see it highlighted in blue: `<form novalidate class="grid grid-cols-1 gap-y-6 sm:grid-cols-2 sm:gap-x-8" id="screendesk-form">`
5. The ID will be at the end of the form tag, starting with `id="`
   * In this case, the form's unique ID is "screendesk-form"
     {% endstep %}

{% step %}
**Router Configuration**

Configure a Form Router within Distro, incorporating your form's unique identifier into the form mapping settings.
{% endstep %}

{% step %}
**Script Acquisition**

Obtain the installation script provided during the final phase of router configuration.

Installation Script Example:

```html
<script type="text/javascript" src="https://app.distro.so/inbound.js"></script>
<script type="text/javascript">
window.distro = new Distro({ routerId: '36' })
distro.schedule('#custom_form')
</script>
```

{% endstep %}

{% step %}
**Script Implementation**

Insert the installation script immediately following your custom HTML form or before the closing body tag (`</body>`) of your landing page.
{% endstep %}
{% endstepper %}

### Mapping Your Custom HTML Form Fields

{% stepper %}
{% step %}
When creating your form in Distro you need to map the relevant form fields to your crm fields

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

{% step %}
Locate the name of the custom form fields

<figure><img src="/files/8T0vH7s2UJpXYNeWAl0d" alt=""><figcaption></figcaption></figure>

Here's a step-by-step guide:

1. Open your web browser (Chrome, Firefox, etc.)
2. Right-click on the specific input field you want to inspect
   * In this case, you'd right-click on the name input box in the form
3. Click "Inspect" or "Inspect Element" from the right-click menu
   * This opens the Developer Tools panel (shown on the right side of your image)
4. In the Developer Tools, look for the `<input>` tag that's highlighted
   * In your image, we can see the highlighted code shows an input field with `name="name"`
5. Look for the `name="..."` attribute within the input tag
   * In this example, the input field's name is simply "name"
     {% endstep %}

{% step %}
Enter the name in the field, in this example it is **name**
{% endstep %}
{% endstepper %}


# HubSpot Form

Enhance your lead management by integrating Distro with your HubSpot forms. This integration enables you to book meetings with qualified inbound leads and connect them with the appropriate team member.

### Configure Your HubSpot form to be Distro Compatible

#### In HubSpot

{% stepper %}
{% step %}
Log into your HubSpot account.
{% endstep %}

{% step %}
Find the form you wish to integrate with Distro

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

{% step %}
Select “Edit form” located at the top right of the page

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

{% step %}
Navigate to the “Options” tab.

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

{% step %}
In the “**What should happen after someone submits this form?**” section, select **Display a thank you message**.

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

{% step %}
Identify the form ID in the URL, located after “/editor” and before “/edit” – this will be needed in Distro.

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

{% step %}
Confirm your changes by clicking “Update.”
{% endstep %}
{% endstepper %}

#### In Distro

### How to Map your HubSpot Form to Distro

{% stepper %}
{% step %}
Set up your Form Router
{% endstep %}

{% step %}
Type your HubSpot form selector ID as the form selector when mapping your web form fields

{% hint style="success" %}
If your HS Form ID is **3c2cf1b6-c45d-47c2-a02d-cce792b37595**

Then your Selector ID is **hsForm\_3c2cf1b6-c45d-47c2-a02d-cce792b37595**
{% endhint %}
{% endstep %}

{% step %}
To identify the appropriate form field names, navigate to the form editor and select the desired field by clicking on it

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

{% step %}
In the form mapping interface, enter the previously copied field name in the left input box and associate it with the corresponding Hubspot field by selecting it from the options available on the right side.

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

### Adding the Form Router to Your Web Page

{% stepper %}
{% step %}
Navigate to the "Install Router" section for the form router you wish to implement

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

{% step %}
Copy the provided code snippet
{% endstep %}

{% step %}
Paste the code snippet onto your webpage or landing page, where the HubSpot form is embedded, just before the closing tag
{% endstep %}
{% endstepper %}

### &#x20; <a href="#step-1-set-up-your-form-in-hubspot" id="step-1-set-up-your-form-in-hubspot"></a>


# Marketo

This documentation outlines the process of integrating Distro's scheduling functionality with Marketo forms on your web pages.

{% hint style="success" %}

* Distro works seamlessly alongside Marketo's existing functionality
* Your Marketo form will continue to collect lead information and create records as usual
* The scheduler appears only after the form submission is processed
* Meeting details are automatically associated with the corresponding lead record
* The integration supports pages with multiple Marketo forms through specific form ID targeting
  {% endhint %}

### How to Map a Marketo Form

{% stepper %}
{% step %}

#### Form Identification

<figure><img src="/files/cWSN04gqZYx2Wate2iin" alt=""><figcaption></figcaption></figure>

Locate and note the unique identifier associated with your Marketo form. This ID is essential for proper integration with Distro's scheduling system.

To find your Marketo form ID:

1. Open your web browser (Chrome, Firefox, etc.)
2. Right-click on your Marketo form
3. Click "Inspect" or "Inspect Element" from the menu
4. In the Developer Tools panel, look for the form element
5. The Marketo form ID will be present in the form's HTML attributes
   {% endstep %}

{% step %}
**Field Mapping**

* In Distro, navigate to **Forms**
* Locate the form mapping section
* For each Marketo form field:
  * Identify the field name from your Marketo form
  * Map it to the corresponding field in your CRM
  * Ensure all required fields are properly mapped

<figure><img src="/files/19OCYXTQgkBlIeykaJJl" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}


# Overview

<figure><img src="/files/0hLLoT4ded7ncvZL25Dg" alt=""><figcaption></figcaption></figure>

Rules in Distro are powerful conditions that determine how your inbound meeting requests are handled. They help you automatically route meetings to the right team members based on various criteria from your HubSpot data.

There are two types of Routing Rules:

* Ownership Rules
* Distribution Rules

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/UCeAaGKk7YOQuRE4P183">Ownership Rules</a></td><td>Distro automatically checks if there's already a relationship established in your CRM.</td><td></td><td><a href="/pages/UCeAaGKk7YOQuRE4P183">/pages/UCeAaGKk7YOQuRE4P183</a></td></tr><tr><td><a href="/pages/pCdkiE7hmaq5WFS8frfq">Distribution Rules</a></td><td>When new leads or meetings come in without existing relationships in your CRM.</td><td></td><td><a href="/pages/pCdkiE7hmaq5WFS8frfq">/pages/pCdkiE7hmaq5WFS8frfq</a></td></tr><tr><td></td><td></td><td></td><td></td></tr></tbody></table>


# Ownership Rules

Ownership Rules help you automatically match incoming prospects with existing records in your CRM system. This allows you to:

* Maintain data consistency by matching prospects with existing contacts/leads/companies
* Route prospects to the right owner based on existing relationships

## Creating an Ownership Rule

{% stepper %}
{% step %}
Navigate to the **Form Routers** tab in the sidebar

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

{% step %}
Select "Ownership Rule"
{% endstep %}

{% step %}
Click "+ New Ownership Rule"
{% endstep %}

{% step %}
Select how to check for ownership in the modal

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

## Setting Up Your Ownership Rule

### Types of Matching

{% tabs %}
{% tab title="Exact Matching" %}
**Exact Matching**: The prospect's email must exactly match an existing record in your CRM

{% hint style="info" %}
Example: <john.smith@example.com> will only match with <john.smith@example.com>
{% endhint %}
{% endtab %}

{% tab title="Fuzzy Matching" %}
**Fuzzy Matching**: The prospect's email domain can match with other records sharing the same domain

{% hint style="info" %}
Example: <john.smith@example.com> can match with <jane.doe@example.com> because they share the example.com domain
{% endhint %}
{% endtab %}
{% endtabs %}

<figure><img src="/files/27hP0Tx77NEE2BXJ9t1k" alt=""><figcaption></figcaption></figure>

### Adding Conditions

Additional conditions allow you to refine when an Ownership Rule should be applied. While the primary ownership condition checks for contact/company ownership, additional conditions let you evaluate specific CRM field values before assigning the meeting.

#### Example Scenarios

<details>

<summary>Scenario 1: Enterprise Contacts Only</summary>

```
Group Logic: AND
Conditions:
- Company Size > 1000
- Industry != "Small Business"
```

</details>

<details>

<summary>Scenario 2: High-Priority or VIP Contacts</summary>

```
Group Logic: OR
Conditions:
- Lead Status = "Hot"
- Customer Tier = "Enterprise"
- Priority Level = "High"
```

</details>

<figure><img src="/files/o5xrG1w56uBus2wtoX97" alt=""><figcaption></figcaption></figure>

#### Condition

Each condition consists of three parts:

1. **Field** - The CRM field you want to check
2. **Operator** - How you want to compare the field value
3. **Value** - What you're comparing against

<figure><img src="/files/kHXSOvdE90Q9dzFykjYk" alt=""><figcaption></figcaption></figure>

#### Condition Groups

* Conditions can be organized into groups
* Each group can use either:
  * **AND logic** - All conditions in the group must be true
  * **OR logic** - Any condition in the group can be true

<figure><img src="/files/79qSmr1eVzVEOXm6Dktx" alt=""><figcaption></figcaption></figure>

### Assigning Meeting

When a prospect matches with an existing record in your CRM as well as with your conditions, you have two options for assigning the meeting:

{% tabs %}
{% tab title="Existing Owner " %}
**Assign to Existing Owner (Default)**: the meeting will be assigned to the current owner of the matched record in your CRM

{% hint style="info" %}
For example, if John Smith owns the matching contact in HubSpot, the meeting will be assigned to John Smith
{% endhint %}

If you choose to assign to the existing owner, you'll need to select which owner field to use from your CRM. This is particularly useful when records have multiple owner fields or when working with custom owner properties.
{% endtab %}

{% tab title="Specific User" %}
**Assign to Specific User**: you can manually select a team member to receive all meetings from this rule.

{% hint style="info" %}
This overrides the CRM ownership and ensures meetings always go to your chosen team member
{% endhint %}
{% endtab %}
{% endtabs %}

<figure><img src="/files/3VwjcPgS6LnDWkJAthna" alt=""><figcaption></figcaption></figure>

### Update CRM Owner

When an Ownership Rule is triggered, you can automatically update the record owner in your CRM (HubSpot or Salesforce). This ensures that the ownership in your CRM stays synchronized with your routing assignments.

{% hint style="danger" %}
The ownership update happens when the Ownership Rule matches (during form submission), not when the meeting is actually booked.
{% endhint %}

{% tabs %}
{% tab title="HubSpot" %}
For HubSpot, the system will find your Contact using either their HubSpot ID or email address, then update the owner property to match your routing assignment. All updates are monitored to ensure proper synchronization between your routing assignments and HubSpot ownership.
{% endtab %}

{% tab title="Salesforce" %}
For Salesforce, the system will locate your **Lead** or **Contact** using either their Salesforce ID or email address, then update the owner field accordingly. All updates are tracked to ensure successful synchronization between your routing assignments and Salesforce ownership.
{% endtab %}
{% endtabs %}

<figure><img src="/files/nWBprUGOka3wqbvwyLy9" alt=""><figcaption></figcaption></figure>

### Advanced Meeting Options

Advanced meeting options allow you to customize additional settings for meetings that are booked through this rule. These settings help you ensure consistency and save time by automating guest additions and meeting type selection.

{% hint style="danger" %}
Be aware that Distro will not check the availability of the additional guests
{% endhint %}

**Override default meeting settings: l**ets you use different meeting settings than what's configured in your router.

<figure><img src="/files/ZfNeQg4mCzcPgmx38nZ0" alt=""><figcaption></figcaption></figure>


# Distribution Rules

Distribution Rules help you automatically route meetings to the right team members based on specific criteria and conditions. These rules ensure efficient and intelligent distribution of meetings across your sales team.

Distribution Rules allow you to:

* Route meetings based on specific criteria from your forms or CRM data
* Implement round-robin distribution among team members
* Set up territory-based routing
* Create custom routing logic based on multiple conditions

## Creating a Distribution Rule

{% stepper %}
{% step %}
Navigate to the Form Routers tab in the sidebar

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

{% step %}
Select "Distribution Rules"
{% endstep %}

{% step %}
Click "+ New Distribution Rule"
{% endstep %}

{% step %}
Enter a descriptive name for your rule (e.g., "Team NA if Territory is NA")

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

## Setting Up Your Distribution Rule

### Adding Conditions

Additional conditions allow you to refine when a Distribution Rule should be applied. You can base condition on the form data or a CRM record.

<details>

<summary>Scenario 1: Territory-Based Routing</summary>

```
Group Logic: AND
Conditions:
- Lead Country = "United States"
- Lead State = "California"
Action: Assign to West Coast Team
```

</details>

<details>

<summary>Scenario 2: Deal Size Distribution</summary>

```
Group Logic: OR
Conditions:
- Deal Size > 100000
- Company Employee Count > 1000
Action: Assign to Enterprise Team
```

</details>

#### Condition

Each condition consists of three parts:

1. **Field** - The CRM field you want to check
2. **Operator** - How you want to compare the field value
3. **Value** - What you're comparing against

<figure><img src="/files/kHXSOvdE90Q9dzFykjYk" alt=""><figcaption></figcaption></figure>

#### Condition Groups

* Conditions can be organized into groups
* Each group can use either:
  * **AND logic** - All conditions in the group must be true
  * **OR logic** - Any condition in the group can be true

<figure><img src="/files/79qSmr1eVzVEOXm6Dktx" alt=""><figcaption></figcaption></figure>

### Assign Meeting

There are two main ways to distribute meetings among team members:

{% tabs %}
{% tab title="All Members" %}

* Assigns meetings to all members of the selected team
* Uses an intelligent round-robin system that considers multiple factors
* Ensures fair distribution across the entire team
  {% endtab %}

{% tab title="Selected Members" %}

* Allows you to choose specific team members for meeting distribution
* Useful when only certain team members should receive meetings
* Each selected member can be assigned different weights
  {% endtab %}
  {% endtabs %}

Meeting assignments also takes into consideration the selected distribution method in your Form Router.

#### Strict Round-Robin

{% @mermaid/diagram content="%%{init: { 'theme': 'base', 'themeVariables': { 'primaryColor': '#6366f1', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#4f46e5', 'lineColor': '#6366f1', 'secondaryColor': '#818cf8', 'tertiaryColor': '#f3f4f6', 'background': '#f3f4f6' } }}%%

graph TD subgraph "Strict Distribution" A1\[New Meeting Request] --> B1\[Check Recent Assignments] B1 --> C1{Same Contact\
within 2hrs?}

```
    C1 -->|Yes| D1[Assign to<br>Previous Member]
    
    C1 -->|No| E1[Get Team Members]
    E1 --> F1[Check Vacation Status]
    F1 --> G1[Calculate Member Weights]
    G1 --> H1[Check Monthly<br>Assignment Count]
    H1 --> I1[Select Member with<br>Best Weight Ratio]
    
    D1 --> J1[Create Assignment<br>History]
    I1 --> J1
end
```

style A1 fill:#6366f1,color:#fff style J1 fill:#6366f1,color:#fff" %}

#### Flexible Round-Robin

{% @mermaid/diagram content="%%{init: { 'theme': 'base', 'themeVariables': { 'primaryColor': '#6366f1', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#4f46e5', 'lineColor': '#6366f1', 'secondaryColor': '#818cf8', 'tertiaryColor': '#f3f4f6', 'background': '#f3f4f6' } }}%%

graph TD subgraph "Flexible Distribution" A2\[New Meeting Request] --> B2\[Check Recent Assignments] B2 --> C2{Same Contact\
within 2hrs?}

```
    C2 -->|Yes| D2[Check Previous<br>Member Availability]
    D2 -->|Available| E2[Assign to<br>Previous Member]
    D2 -->|Not Available| F2[Get Team Members]
    
    C2 -->|No| F2
    F2 --> G2[Check Calendar<br>Availability]
    G2 --> H2[Filter Available<br>Members]
    H2 --> I2[Count Monthly<br>Assignments]
    I2 --> J2[Select Available Member<br>with Least Assignments]
    
    E2 --> K2[Create Assignment<br>History]
    J2 --> K2
end
```

style A2 fill:#6366f1,color:#fff style K2 fill:#6366f1,color:#fff " %}

#### Assign weightage

Weights determine how many meetings each team member receives compared to others. Think of it like sharing a pie: if one person has a weight of 2 and another has a weight of 1, the first person will get about twice as many meetings over time.

{% hint style="info" %}
For example, in a team where most members have a weight of 1, giving someone a weight of 3 means they'll receive roughly three times more meetings than others.
{% endhint %}

The system tracks monthly assignments to maintain this ratio while ensuring no one gets overloaded. For new team members, the system automatically adjusts their weight based on when they joined, helping them integrate gradually into the rotation.

{% hint style="success" %}
Pro Tip: Start with equal weights (1) for everyone and adjust based on capacity and performance needs. Monitor the distribution and fine-tune as needed.
{% endhint %}

<figure><img src="/files/Bg4iA0xuFgLNytjmAz5u" alt=""><figcaption></figcaption></figure>

### Update CRM Owner

When a Distribution Rule is triggered, you can automatically update the record owner in your CRM (HubSpot or Salesforce). This ensures that the ownership in your CRM stays synchronized with your routing assignments.

{% hint style="danger" %}
The ownership update happens when the ownership rule matches (during form submission), not when the meeting is actually booked.

**There will be no ownership update if the router distribution method is set to flexible (because ownership is only performed once the meeting is booked).**
{% endhint %}

{% tabs %}
{% tab title="HubSpot" %}
For HubSpot, the system will find your Contact using either their HubSpot ID or email address, then update the owner property to match your routing assignment. All updates are monitored to ensure proper synchronization between your routing assignments and HubSpot ownership.
{% endtab %}

{% tab title="Salesforce" %}
For Salesforce, the system will locate your **Lead** or **Contact** using either their Salesforce ID or email address, then update the owner field accordingly. All updates are tracked to ensure successful synchronization between your routing assignments and Salesforce ownership.
{% endtab %}
{% endtabs %}

<figure><img src="/files/Q2q5C5pjzNSsNKurGl3F" alt=""><figcaption></figcaption></figure>

### Advanced Meeting Options

Advanced meeting options allow you to customize additional settings for meetings that are booked through this rule. These settings help you ensure consistency and save time by automating guest additions and meeting type selection.

{% hint style="danger" %}
Be aware that Distro will not check the availability of the additional guests
{% endhint %}

**Override default meeting settings: l**ets you use different meeting settings than what's configured in your router.

<figure><img src="/files/eOcd5FK5ZhUM0ThHFnCQ" alt=""><figcaption></figcaption></figure>


# Distribution History

Distribution History helps you track and manage how meetings are distributed among team members. This feature provides transparency into meeting assignments and helps ensure fair distribution of workload across your team.

Administrators can view assignment distribution statistics including:

* Number of bookings assigned per team member
* Upcoming bookings
* Completed bookings
* Cancelled or no-show bookings
* Distribution weightage


# Overview

<figure><img src="/files/XcYWpy3rMeKPxmMD1IRj" alt=""><figcaption></figcaption></figure>

Event types allow you to define the different types of meetings you want your customers to be able to schedule with your sales team.

For example:

1. SDR teams to qualify your prospects.
2. AE reps to give product demos and close deals.
3. Implementation or Success teams to help your prospect successfully implement your product.

It also lets you create personalized calendar invites and reminder templates that can be sent based on the type of meeting booked.


# Create an Event Type

Create event types for your routers and personal meeting links.

## Creating an Event Type

To create a new event:

{% stepper %}
{% step %}
Navigate to Event Types tab in the left sidebar
{% endstep %}

{% step %}
Click the "+ New Event Type" button in the top-right corner

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

{% step %}
Enter your event title in the "How would you like to call this event type?" field

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

{% step %}
Click "Create Event Type"
{% endstep %}
{% endstepper %}

## Configuring Your Event Type

### Internal Settings

#### **Internal Title**

This is the name of the event type. This is only visible in your dashboard.

#### **Internal Description**

This is a detailed explanation of your event. It will assist you in recalling the purpose of the particular event type.

<figure><img src="/files/2tsc78beGGgx0REGOlbI" alt=""><figcaption></figcaption></figure>

### Duration Settings <a href="#description" id="description"></a>

Fine-tune your meeting schedule with:

#### **Duration**

Set fixed meeting lengths - Quick check-ins (15-20 min), Standard meetings (30-45 min), In-depth discussions (60-90 min).

#### **Time-slots intervals**

Control start times - 15-minute increments for maximum flexibility (9:00, 9:15, 9:30, 9:45), 30-minute increments for balanced schedule (9:00, 9:30, 10:00), or 60-minute increments for hourly starts.

#### **Buffer Times**

Add 0-30 minutes before events (prepare materials, join early, quick breaks) and after events (follow-up notes, send materials, travel time).

<figure><img src="/files/aADlwmzBTtTEwbOp5Zgt" alt=""><figcaption></figcaption></figure>

### Language and time settings

Make your booking experience feel familiar to your visitors by choosing appropriate regional settings.

#### **Language** **Settings**

* Set your booking page and email notifications to English or French
* Important: Custom text (greeting message and description) must be written in your chosen language, as they won't be automatically translated

#### **Time** **Format**

* 12-hour format (2:30 PM) for US/UK audiences
* 24-hour format (14:30) for European audiences

{% hint style="info" %}
Tip: For multilingual audiences, consider creating separate booking links with different language settings.
{% endhint %}

<figure><img src="/files/N3tuREHf5RHVtDem69EC" alt=""><figcaption></figcaption></figure>

### Widget Settings

#### **Greeting text**

This text appears above the booking slots and is the first interaction your prospect will have with your scheduling page.

#### **Description text**

Provide a description of the event type to your prospects, for instance: we will investigate your use case and see how Distro can help you.

<figure><img src="/files/O33zI5JokLzY58ktrvj8" alt=""><figcaption></figcaption></figure>

#### Inherit Availability

{% hint style="info" %}
**Teams**: Bookings slots shown are based on the availability configured for your team. This ensures prospects can only book meetings during your team's set working hours.

**Users**: Available bookings times are based on your personal calendar settings. Prospects will only see time slots that match your configured availability windows.
{% endhint %}

<figure><img src="/files/pIr2ygrAb21jZKFUnEgr" alt=""><figcaption></figcaption></figure>

#### Booking Window

Set minimum notice (immediate to 2 days) and booking window (15-90 days, example: 30-day window limits bookings to next month only).

<figure><img src="/files/UIvHkq6c7dpryvcDPBZu" alt=""><figcaption></figcaption></figure>

### Calendar Invites <a href="#how-to-create-an-event-type" id="how-to-create-an-event-type"></a>

Make your calendar invites informative and professional. The rich text editor lets you create detailed event descriptions including:

* Meeting agenda
* Preparation instructions
* Join links and contact information

Personalize your invites using variables like {{meeting.title}} to automatically insert meeting details.

#### Calendar Title Variables

| Variable                | Description        | Example                               |
| ----------------------- | ------------------ | ------------------------------------- |
| {{assignee.firstname}}  | Your first name    | Sarah                                 |
| {{assignee.lastname}}   | Your last name     | Jones                                 |
| {{org.name}}            | Your org name      | Acme Corp                             |
| {{booking.duration}}    | Booking duration   | 30                                    |
| {{booking.start\_time}} | Booking start time | Sunday, December 22, 2024 at 09:00AM. |
| {{time\_zone}}          | Booking time zone  | EST                                   |

#### Calendar Description Variables

| Variable                | Description                    |
| ----------------------- | ------------------------------ |
| {{assignee.firstname}}  | Your first name                |
| {{assignee.lastname}}   | Your last name                 |
| {{org.name}}            | Your org name                  |
| {{booking.duration}}    | Booking duration               |
| {{booking.start\_time}} | Booking start time             |
| {{time\_zone}}          | Booking time zone              |
| {{reschedule\_link}}    | Link to reschedule the meeting |
| {{cancel\_link}}        | Link to cancel the meeting     |
| {{join\_link}}          | Meeting join URL               |
| {{time\_zone}}          | Booking time zone              |

<figure><img src="/files/QyvonP4OE8Ov76YYiY3k" alt=""><figcaption></figcaption></figure>

### Email Reminders

Keep everyone on track with customizable email reminders. You can set reminders at different intervals:

Short notice:

* 30, 45, 60, 75, or 90 minutes before
* 2-5 hours before
* 1-2 days before

For each reminder, customize both the subject line and message content to include relevant preparation materials and access instructions.

Personalize your reminders using variables like {{meeting.title}} to automatically insert meeting details.

#### Reminder email subject

| Variable                | Description        | Example                               |
| ----------------------- | ------------------ | ------------------------------------- |
| {{assignee.firstname}}  | Your first name    | Sarah                                 |
| {{assignee.lastname}}   | Your last name     | Jones                                 |
| {{org.name}}            | Your org name      | Acme Corp                             |
| {{booking.duration}}    | Booking duration   | 30                                    |
| {{booking.start\_time}} | Booking start time | Sunday, December 22, 2024 at 09:00AM. |
| {{time\_zone}}          | Booking time zone  | EST                                   |

#### Reminder email description variables

| Variable                | Description                    | Example                               |
| ----------------------- | ------------------------------ | ------------------------------------- |
| {{assignee.firstname}}  | Your first name                | Sarah                                 |
| {{assignee.lastname}}   | Your last name                 | Jones                                 |
| {{org.name}}            | Your org name                  | Acme Corp                             |
| {{booking.duration}}    | Booking duration               | 30                                    |
| {{booking.start\_time}} | Booking start time             | Sunday, December 22, 2024 at 09:00AM. |
| {{time\_zone}}          | Booking time zone              | EST                                   |
| {{reschedule\_link}}    | Link to reschedule the meeting | Reschedule Meeting                    |
| {{cancel\_link}}        | Link to cancel the meeting     | Cancel Meeting                        |
| {{join\_link}}          | Meeting join URL               | Join Meeting                          |

<figure><img src="/files/ej1XC2wuy1w747shINI9" alt=""><figcaption></figcaption></figure>


# Create a Team

Teams in Distro allow you to group sales representatives together for automated meeting distribution. You can use round-robin or custom logic to distribute leads among team members, making it easier to manage meeting assignments efficiently.

### Creating a Team

{% stepper %}
{% step %}
Click on **Teams** in the left sidebar navigation menu
{% endstep %}

{% step %}
Look for the "+ New Team" button in the top right corner

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

{% step %}
Click the "+ New Team" button
{% endstep %}

{% step %}
In the "What do you want to call this team?" field, enter a descriptive name

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

{% step %}
Select the appropriate timezone for your team
{% endstep %}
{% endstepper %}

### Adding/Removing Members to a Team

When a **Distribution Rule** evaluates to true and a meeting is created, the meeting will be assigned to either a single user or a team depending on the rule's distribution type.

{% hint style="info" %}
When you add a new team member mid-month, our algorithm will initially prioritize assigning them meetings to help balance the workload. However, it ensures a fair distribution by not overloading the new member.
{% endhint %}

<figure><img src="/files/EuiKyHrzUxrMFUrTvjVJ" alt=""><figcaption></figcaption></figure>

### Managing availability of a Team

For each day of the week, you can set specific time slots by selecting start and end times from the dropdown menus. Click the "+" button to add multiple time slots for a day to accommodate different schedules and time zones.

Prospects will be able to book time slots according to the timezone of the team and the team availability.

{% hint style="warning" %}
When **Routers** are configured to **inherit availabilities from the team**, meetings will be automatically distributed within these defined time slots.

For **Ownership Rules**, the system will inherit availabilities from individual user settings rather than team availability.
{% endhint %}

<figure><img src="/files/h0fFNY32983mm067SmMr" alt=""><figcaption></figcaption></figure>


# Overview

<figure><img src="/files/eds08t0k33XIOpJsArJk" alt=""><figcaption></figcaption></figure>

Bookings represent the foundation of Distro's functionality, enabling seamless meeting management and prospect engagement across your organization. The platform streamlines every aspect of the scheduling process, from initial contact to meeting completion.

### Booking Dashboard

The dashboard serves as your central command center for all meeting activities. It provides a comprehensive view of your bookings through an intuitive interface that helps you stay on top of all scheduled interactions.

Key dashboard features include:

* Status tracking that lets you monitor meetings across four categories: Scheduled, Completed, Cancelled, and No-shows
* Advanced filtering capabilities for Booking Type, Booking Owner, and Date Range, enabling precise meeting management
* A clean layout that presents essential meeting information at a glance

<figure><img src="/files/BV8v99x4go1Ym0iBFUYy" alt=""><figcaption></figcaption></figure>

### Booking Details

When accessing individual bookings, Distro organizes information into five key sections designed for clarity and efficiency:

#### Booking Details Section

The Booking Details section presents essential meeting information in one place. You'll find the lead's contact information, precise scheduling details including timezone, and integration options for your calendar and CRM. The Google Meet link is readily available with a convenient copy feature, and you can track when the booking was created.

<figure><img src="/files/FWQS2n0Ct5uBcFBSBgzH" alt=""><figcaption></figcaption></figure>

#### **Participants Section**

{% hint style="info" %}
You can add additional guests to the booking in this section.
{% endhint %}

The Participants section clearly outlines meeting attendance. It displays the assigned team member and all guests, complete with their email addresses for easy reference and communication.

<figure><img src="/files/kCZGiJcRKjzFdQHlYMeE" alt=""><figcaption></figcaption></figure>

#### Booking Actions Section

Meeting management is streamlined through a set of essential controls:

* Reschedule bookings when timing needs adjustment
* Reassign meetings to different team members
* Cancel bookings when necessary
* Mark sessions as no-show for accurate tracking

<figure><img src="/files/t6ob1v18XoRndJTX8PbE" alt=""><figcaption></figcaption></figure>

#### Booking Source Section

Understanding how meetings originate is crucial for optimizing your scheduling process. This section identifies:

* The Router that generated the booking
* Specific router name for tracking
* Applied qualification rules
* Detailed routing logs for comprehensive analysis

<figure><img src="/files/BIiYshHwuPRnEEGC8zQy" alt=""><figcaption></figcaption></figure>

#### Form Entries Section

The Form Entries section provides a comprehensive view of your prospect's data:

* All information submitted through the booking form
* Enriched data automatically pulled from your CRM

<figure><img src="/files/gdkYO99UtUaKGB4gZ42A" alt=""><figcaption></figcaption></figure>

#### Invite Section

The Invite section displays an exact replica of the communication sent to your prospect:

* Complete calendar invitation as received by the prospect
* Timezone information for verification
* Meeting links and instructions
* Rescheduling and cancellation options This transparency helps quickly identify and resolve any scheduling discrepancies.

<figure><img src="/files/s1DWHfOdG1sK16qq2oEn" alt=""><figcaption></figcaption></figure>


# Create a Workflow

Set up automated Slack, email, and webhook notifications.

Create a workflow to send Slack, email, or webhook notifications on key events.

You’ll connect a trigger to one or more actions. Actions run in order.

{% hint style="info" %}
Only workspace admins can create and manage workflows.
{% endhint %}

{% stepper %}
{% step %}

### Navigate to Workflows

Click **Workflows** in the main sidebar.

<figure><img src="/files/4rHkTgwmv2RDE8AGligW" alt=""><figcaption></figcaption></figure>

Click **New Workflow**.

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

{% step %}

### Select a trigger

Choose the event that runs your workflow.

<figure><img src="/files/FBUL2PH9YPYqg29xRJPU" alt=""><figcaption></figcaption></figure>

Available triggers:

* **Form Submitted** — Prospect submits a router form
* **Prospect Disqualified** — Prospect is disqualified by routing rules
* **Prospect No Booking** — Prospect doesn’t book after form submission
* **Meeting Booked** — Meeting is scheduled
* **Meeting Rescheduled** — Meeting time changes
* **Meeting Cancelled** — Meeting is cancelled
* **Before Meeting** — A set time before the meeting starts
* **After Meeting** — A set time after the meeting ends
* **Meeting Completed** — Meeting is marked complete
* **Meeting No Show** — Attendee is marked as no-show

For **Before Meeting** and **After Meeting**, set a time offset in minutes.
{% endstep %}

{% step %}

### Select a source type

<figure><img src="/files/padgw4MPFRVtavFhNGF4" alt=""><figcaption></figcaption></figure>

Choose what the workflow applies to:

* **Routers** — Form router events
* **Click Routers** — Click router events
* **Booking Links** — Personal booking link events
* **Group Meeting Links** — Group meeting link events

{% hint style="info" %}
Available triggers change based on the source type.

Example: `form_submitted` is only available for Routers and Click Routers.
{% endhint %}
{% endstep %}

{% step %}

### Select specific sources (optional)

<figure><img src="/files/ZxP7euYf8VOIIEt1Xoof" alt=""><figcaption></figcaption></figure>

Decide how broad the workflow should be:

* **All sources** — Run for every source of the selected type
* **Selected sources** — Pick specific routers, booking links, etc.

Use this for targeted workflows.

Example: only notify on bookings from your “Enterprise Demo” router.
{% endstep %}

{% step %}

### Configure actions

Add one or more actions. Distro runs them in order.

<figure><img src="/files/LeCxXXAg9p4scqiz0hJM" alt=""><figcaption></figcaption></figure>

#### Slack message

<figure><img src="/files/lbkyGo3WqxVIgZcKKhps" alt=""><figcaption></figcaption></figure>

1. Select a Slack channel
2. Write the message content
3. Add placeholders like `{{attendee.name}}`

{% hint style="info" %}
The Distro Slack app must be installed and connected via OAuth.

Invite the bot to the channel before sending.
{% endhint %}

#### Email to assignee

<figure><img src="/files/M6h6avmmLW0hcisWid7J" alt=""><figcaption></figcaption></figure>

1. Set the subject
2. Write the body
3. Add placeholders

{% hint style="info" %}
This action isn’t available for `form_submitted` or `prospect_disqualified`.

There’s no assignee yet.
{% endhint %}

#### Email to specific people

<figure><img src="/files/EntBl8mddFjZaX81mIgS" alt=""><figcaption></figcaption></figure>

1. Enter recipient emails (comma-separated)
2. Set the subject
3. Write the body
4. Add placeholders

#### Webhook

<figure><img src="/files/SNxsYyhxxpaEsSQuZrR3" alt=""><figcaption></figcaption></figure>

1. Enter the receiving webhook URL
2. Add a signing secret (optional)
3. Add custom headers (optional)

For webhook details and payload examples, see [Webhook payloads](/workflows/webhook-payloads).
{% endstep %}
{% endstepper %}

### Save your workflow

<figure><img src="/files/1ForGDZrgmGXvnrnLxHX" alt=""><figcaption></figcaption></figure>

1. Give it a clear name. Example: “Slack alert for enterprise bookings”.
2. Click **Save**.
3. New workflows start **inactive**. Toggle **active** when ready.

### Test your workflow

<figure><img src="/files/xQXnAPAtDTeDyy46lLnW" alt=""><figcaption></figcaption></figure>

1. Click **Test Workflow** in the editor.
2. Select a sample resource (booking or submission).
3. Use **Preview** to render without sending.
4. Use **Send Test** to send a real test notification.

Send test behavior:

* Slack: sends with `[TEST]` prefix
* Email: sends to you only
* Webhook: includes `X-Distro-Test: true`

### Using placeholders

Placeholders are replaced with real data at send time.

#### Attendee

* `{{attendee.name}}` — Full name
* `{{attendee.email}}` — Email
* `{{attendee.company}}` — Company

#### Booking

* `{{booking.title}}` — Meeting title
* `{{booking.start_time}}` — Meeting start time
* `{{booking.uuid}}` — Booking ID

#### Assignee

* `{{user.name}}` — Assigned user’s name
* `{{user.email}}` — Assigned user’s email

#### Submission

* `{{submission.form_data}}` — Form field responses

### Manage workflows

From **Workflows**, you can:

* Toggle active/inactive
* Edit triggers, sources, and actions
* Duplicate a workflow
* Delete a workflow
* View history for failures and retries


# Webhook payloads

Sample payloads and headers sent by Distro Workflows webhooks.

Sample webhook payloads for different sources in Distro Workflows.

Distro sends JSON to your configured webhook URL.

Payload shape depends on the **source type** and **trigger**.

{% hint style="info" %}
Payloads are examples. Distro may add fields over time.
{% endhint %}

### Basics

All webhooks use the same envelope:

```json
{
  "event": "meeting_booked",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {}
}
```

* `event`: the trigger that fired the webhook (see [Triggers](broken://spaces/QA3GQNrIYVrPQ90NBwRa/pages/rwqm2na0Wd8HhUud39fu#triggers)).
* `timestamp`: ISO 8601 time when Distro sent the webhook.
* `data`: the event payload. Shape depends on source type.

Conventions:

* Keys use `snake_case`.
* `data.source_type` is one of: `router`, `click_router`, `booking_link`, `group_meeting_link`.
* `data.booking` can be `null` for submission-only triggers.

### Payload examples

{% tabs %}
{% tab title="Router" %}
Triggered by **Form Routers**.

```json
{
  "event": "meeting_booked",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "source_type": "router",
    "source_id": 123,
    "source_title": "Demo Request Router",
    "submission": {
      "id": 789,
      "uuid": "sub-xyz789-abc123",
      "form_data": {
        "email": "jane@example.com",
        "company": "Acme Corp",
        "employees": "50-100",
        "message": "Interested in enterprise plan"
      },
      "time_zone": "America/New_York",
      "source_url": "https://example.com/contact",
      "created_at": "2024-01-15T10:25:00Z"
    },
    "booking": {
      "id": 456,
      "uuid": "book-abc123-def456",
      "title": "Discovery Call with Acme Corp",
      "start_time": "2024-01-20T14:00:00Z",
      "end_time": "2024-01-20T14:30:00Z",
      "status": "scheduled",
      "meeting_url": "https://meet.google.com/abc-defg-hij",
      "time_zone": "America/New_York",
      "notes": "Looking forward to discussing your needs."
    },
    "assignee": {
      "id": 1,
      "email": "alex@yourcompany.com",
      "first_name": "Alex",
      "last_name": "Smith"
    },
    "attendees": [
      {
        "name": "Jane Doe",
        "email": "jane@example.com"
      }
    ]
  }
}
```

#### Submission-only events

For `form_submitted`, `prospect_disqualified`, and `prospect_no_booking`, `booking` is `null`.

```json
{
  "event": "form_submitted",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "source_type": "router",
    "source_id": 123,
    "source_title": "Contact Form Router",
    "submission": {
      "id": 789,
      "uuid": "sub-xyz789-abc123",
      "form_data": {
        "email": "jane@example.com",
        "company": "Acme Corp",
        "employees": "50-100"
      },
      "time_zone": "America/New_York",
      "source_url": "https://example.com/contact",
      "created_at": "2024-01-15T10:30:00Z"
    },
    "booking": null,
    "assignee": {
      "id": 1,
      "email": "alex@yourcompany.com",
      "first_name": "Alex",
      "last_name": "Smith"
    },
    "attendees": []
  }
}
```

{% endtab %}

{% tab title="Click Router" %}
Triggered by **Click Routers**.

```json
{
  "event": "meeting_booked",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "source_type": "click_router",
    "source_id": 456,
    "source_title": "Sales Team Round Robin",
    "booking": {
      "id": 789,
      "uuid": "book-def456-ghi789",
      "title": "Sales Call",
      "start_time": "2024-01-22T15:00:00Z",
      "end_time": "2024-01-22T15:30:00Z",
      "status": "scheduled",
      "meeting_url": "https://zoom.us/j/123456789",
      "time_zone": "America/Los_Angeles",
      "notes": null
    },
    "assignee": {
      "id": 5,
      "email": "sarah@yourcompany.com",
      "first_name": "Sarah",
      "last_name": "Johnson"
    },
    "attendees": [
      {
        "name": "John Smith",
        "email": "john@prospect.com"
      }
    ]
  }
}
```

{% endtab %}

{% tab title="Booking Link" %}
Triggered by **Personal Booking Links**.

```json
{
  "event": "meeting_booked",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "source_type": "booking_link",
    "source_id": 101,
    "source_slug": "alex-30min",
    "booking": {
      "id": 1001,
      "uuid": "book-jkl012-mno345",
      "title": "30-min Meeting with Alex",
      "start_time": "2024-01-25T09:00:00Z",
      "end_time": "2024-01-25T09:30:00Z",
      "status": "scheduled",
      "meeting_url": "https://meet.google.com/xyz-abcd-efg",
      "time_zone": "Europe/London",
      "notes": "Want to discuss partnership opportunities"
    },
    "assignee": {
      "id": 1,
      "email": "alex@yourcompany.com",
      "first_name": "Alex",
      "last_name": "Smith"
    },
    "attendees": [
      {
        "name": "Emily Chen",
        "email": "emily@partner.com"
      }
    ]
  }
}
```

{% endtab %}

{% tab title="Group Meeting Link" %}
Triggered by **Group Meeting Links**.

```json
{
  "event": "meeting_booked",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "source_type": "group_meeting_link",
    "source_id": 202,
    "source_slug": "sales-engineering-demo",
    "booking": {
      "id": 2001,
      "uuid": "book-pqr678-stu901",
      "title": "Sales + Engineering Demo",
      "start_time": "2024-01-28T16:00:00Z",
      "end_time": "2024-01-28T17:00:00Z",
      "status": "scheduled",
      "meeting_url": "https://teams.microsoft.com/l/meetup-join/...",
      "time_zone": "America/Chicago",
      "notes": "Technical deep-dive requested"
    },
    "assignee": {
      "id": 3,
      "email": "mike@yourcompany.com",
      "first_name": "Mike",
      "last_name": "Wilson"
    },
    "attendees": [
      {
        "name": "David Brown",
        "email": "david@enterprise.com"
      }
    ]
  }
}
```

{% endtab %}
{% endtabs %}

### Operational notes

<details>

<summary>HTTP headers and signatures</summary>

Every webhook request includes:

* `Content-Type: application/json`
* `User-Agent: Distro-Webhooks/1.0`
* `X-Distro-Delivery-ID`: unique delivery ID for tracking
* `X-Distro-Timestamp`: Unix timestamp of request (seconds)
* `X-Distro-Signature`: `t={timestamp},v1={signature}` (only if a signing secret is configured)
* `X-Distro-Test: true` (only for test webhooks)

Use `X-Distro-Delivery-ID` as an idempotency key if you store deliveries.

#### Verifying signatures

* Signature header: `X-Distro-Signature: t={timestamp},v1={signature}`
* Signed content: `{timestamp}.{raw_request_body}`
* Algorithm: HMAC-SHA256 using your signing secret
* Compare the computed hex digest with `v1`

{% hint style="warning" %}
Use the **raw** request body bytes for verification.

Don’t parse and re-serialize JSON before hashing.
{% endhint %}

</details>

<details>

<summary>Event-specific notes</summary>

#### Cancelled meetings

When `event` is `meeting_cancelled`, `booking.status` is `cancelled`.

```json
{
  "event": "meeting_cancelled",
  "timestamp": "2024-01-18T11:00:00Z",
  "data": {
    "booking": {
      "status": "cancelled"
    }
  }
}
```

#### No-show meetings

When `event` is `meeting_no_show`, `booking.status` is `no_show`.

```json
{
  "event": "meeting_no_show",
  "timestamp": "2024-01-18T11:00:00Z",
  "data": {
    "booking": {
      "status": "no_show"
    }
  }
}
```

</details>

<details>

<summary>Payload limits</summary>

* Maximum payload size: 1 MB
* Maximum `form_data` size: 100 KB

If limits are exceeded, Distro truncates data and includes a truncation marker:

```json
{
  "form_data": {
    "_truncated": true,
    "_original_size": 150000,
    "_message": "Form data exceeded 100KB and was truncated"
  }
}
```

</details>


# Create a Booking Link

Distro allows you to create multiple customized booking links for different purposes, such as client meetings or prospect calls. These links enable others to book time with you directly, eliminating back-and-forth scheduling conversations.

### Creating a New Booking Link

{% stepper %}
{% step %}
Navigate to **Booking Links** in the sidebar
{% endstep %}

{% step %}
Navigate to "My Personal Links" in the sidebar
{% endstep %}

{% step %}
Click the "+ New Booking Link" button in the top right

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

{% step %}
Enter a unique slug for your booking link (e.g., "adrien-30-minutes")

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

{% step %}
Click "Create Booking Link" to generate your new scheduling link
{% endstep %}
{% endstepper %}

### Configuring Your Booking Link

#### Language and time settings

Make your booking experience feel familiar to your visitors by choosing appropriate regional settings.

**Language Settings**

* Set your booking page and email notifications to English or French
* Important: Custom text (greeting message and description) must be written in your chosen language, as they won't be automatically translated

**Time Format**

* 12-hour format (2:30 PM) for US/UK audiences
* 24-hour format (14:30) for European audiences

{% hint style="info" %}
Tip: For multilingual audiences, consider creating separate booking links with different language settings.
{% endhint %}

<div align="center"><figure><img src="/files/4RwCY3l7wShmt2MLfBU3" alt=""><figcaption></figcaption></figure></div>

**Greeting text:** this text appears above the booking slots and is the first interaction your prospect will have with your scheduling page.

**Description text:** provide a description of the event type to your prospects, for instance: we will investigate your use case and see how Distro can help you.

<figure><img src="/files/hnvdZn464YVbWMpda2bz" alt=""><figcaption></figcaption></figure>

### Duration and Scheduling

Fine-tune your meeting schedule with:

#### Duration

Set fixed meeting lengths - Quick check-ins (15-20 min), Standard meetings (30-45 min), In-depth discussions (60-90 min).

#### Time-slots intervals

Control start times - 15-minute increments for maximum flexibility (9:00, 9:15, 9:30, 9:45), 30-minute increments for balanced schedule (9:00, 9:30, 10:00), or 60-minute increments for hourly starts.

#### Buffer Times

Add 0-30 minutes before events (prepare materials, join early, quick breaks) and after events (follow-up notes, send materials, travel time).

#### Booking Window

Set minimum notice (immediate to 2 days) and booking window (15-90 days, example: 30-day window limits bookings to next month only).

<div><figure><img src="/files/iIkfwMJUyroqXkIXvnHf" alt=""><figcaption></figcaption></figure> <figure><img src="/files/HqjIpPMjhV8th4vWXWc2" alt="" width="188"><figcaption></figcaption></figure></div>

### Calendar Invites

Make your calendar invites informative and professional. The rich text editor lets you create detailed event descriptions including:

* Meeting agenda
* Preparation instructions
* Join links and contact information

Personalize your invites using variables like {{meeting.title}} to automatically insert meeting details.

#### Calendar Title Variables

| Variable                | Description        | Example                               |
| ----------------------- | ------------------ | ------------------------------------- |
| {{prospect.firstname}}  | Guest's first name | John                                  |
| {{prospect.lastname}}   | Guest's last name  | Smith                                 |
| {{assignee.firstname}}  | Your first name    | Sarah                                 |
| {{assignee.lastname}}   | Your last name     | Jones                                 |
| {{org.name}}            | Your org name      | Acme Corp                             |
| {{booking.duration}}    | Booking duration   | 30                                    |
| {{booking.start\_time}} | Booking start time | Sunday, December 22, 2024 at 09:00AM. |
| {{time\_zone}}          | Booking time zone  | EST                                   |

#### Calendar Description Variables

| Variable                | Description                    |
| ----------------------- | ------------------------------ |
| {{prospect.firstname}}  | Guest's first name             |
| {{prospect.lastname}}   | Guest's last name              |
| {{assignee.firstname}}  | Your first name                |
| {{assignee.lastname}}   | Your last name                 |
| {{org.name}}            | Your org name                  |
| {{booking.duration}}    | Booking duration               |
| {{booking.start\_time}} | Booking start time             |
| {{time\_zone}}          | Booking time zone              |
| {{reschedule\_link}}    | Link to reschedule the meeting |
| {{cancel\_link}}        | Link to cancel the meeting     |
| {{join\_link}}          | Meeting join URL               |
| {{time\_zone}}          | Booking time zone              |

<figure><img src="/files/bMplTGYqdSZPknEgi7a0" alt=""><figcaption></figcaption></figure>

### Email Reminders

Keep everyone on track with customizable email reminders. You can set reminders at different intervals:

Short notice:

* 30, 45, 60, 75, or 90 minutes before
* 2-5 hours before
* 1-2 days before

For each reminder, customize both the subject line and message content to include relevant preparation materials and access instructions.

Personalize your reminders using variables like {{meeting.title}} to automatically insert meeting details.

#### Reminder email subject

| Variable                | Description        | Example                               |
| ----------------------- | ------------------ | ------------------------------------- |
| {{prospect.firstname}}  | Guest's first name | John                                  |
| {{prospect.lastname}}   | Guest's last name  | Smith                                 |
| {{assignee.firstname}}  | Your first name    | Sarah                                 |
| {{assignee.lastname}}   | Your last name     | Jones                                 |
| {{org.name}}            | Your org name      | Acme Corp                             |
| {{booking.duration}}    | Booking duration   | 30                                    |
| {{booking.start\_time}} | Booking start time | Sunday, December 22, 2024 at 09:00AM. |
| {{time\_zone}}          | Booking time zone  | EST                                   |

#### Reminder email description

| Variable                | Description                    | Example                               |
| ----------------------- | ------------------------------ | ------------------------------------- |
| {{prospect.firstname}}  | Guest's first name             | John                                  |
| {{prospect.lastname}}   | Guest's last name              | Smith                                 |
| {{assignee.firstname}}  | Your first name                | Sarah                                 |
| {{assignee.lastname}}   | Your last name                 | Jones                                 |
| {{org.name}}            | Your org name                  | Acme Corp                             |
| {{booking.duration}}    | Booking duration               | 30                                    |
| {{booking.start\_time}} | Booking start time             | Sunday, December 22, 2024 at 09:00AM. |
| {{time\_zone}}          | Booking time zone              | EST                                   |
| {{reschedule\_link}}    | Link to reschedule the meeting | Reschedule Meeting                    |
| {{cancel\_link}}        | Link to cancel the meeting     | Cancel Meeting                        |
| {{join\_link}}          | Meeting join URL               | Join Meeting                          |

<figure><img src="/files/vi8vrV02u2hRS4pDp2l8" alt=""><figcaption></figcaption></figure>

### Widget Options

Your booking page represents your brand. Consider these customization options:

Branding Elements:

* Add your company logo
* Display your profile information
* Create a custom URL slug

<figure><img src="/files/olcXz7ZJfw0xXCYPdQcr" alt=""><figcaption></figcaption></figure>

### Confirmation Page

When someone books a meeting, you can:

* Show them the standard confirmation page with booking details
* Redirect them to a custom URL (must include complete web address)

<figure><img src="/files/F97Bwqwbw6ZneVopR9yv" alt=""><figcaption></figcaption></figure>

<br>


# Create a Group Link

Let prospects book a meeting with 2–3 team members, based on overlapping availability.

Group booking links let prospects book one meeting with multiple team members.

The booking page only shows time slots where **all selected members are available**.

### Use cases

* **Sales team demos**: multiple reps presenting different areas
* **Panel interviews**: candidates meet multiple interviewers at once
* **Customer success handoffs**: AM + technical specialist
* **Executive briefings**: meetings requiring several stakeholders

### Create a new group booking link

<figure><img src="/files/jHVGBKV3S5PlSwealAWs" alt=""><figcaption></figcaption></figure>

{% stepper %}
{% step %}
Navigate to **Links → Manage Group Links** in the sidebar.
{% endstep %}

{% step %}
Click **Create Group Link** (top-right).
{% endstep %}

{% step %}
In the modal, configure:

* **Link URL Slug**: enter a slug (example: `sales-team-demo`).
* **Select Members**: pick the team members to include.
  {% endstep %}

{% step %}
Click **Create**.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Group booking links require **at least 2 members** and support **up to 3 members**.
{% endhint %}

### Configure link settings

<figure><img src="/files/UNQ83GxGL7l6eAgVl99T" alt=""><figcaption></figcaption></figure>

After creation, you’ll land in the edit view.

#### Link settings

* **Link URL Slug**: the unique identifier in the URL (example: `/group/sales-team-demo`).
* **Show Logo**: show your company logo on the booking page.
* **Show Profile Info**: show selected members’ profile details.

### Configure booking page settings

<figure><img src="/files/45jvwL0P3xUi4mKkM2Gy" alt=""><figcaption></figcaption></figure>

Open **Booking Page** to change what guests see.

#### Appearance and language

* **Guest Language**: language for the booking page (English, French).
* **Time Format**: `12h` or `24h`.
* **Greeting Text**: headline above time slots.
* **Description**: extra context about the meeting.

#### Scheduling options

* **Duration**: 15, 20, 30, 45, 60, or 90 minutes.
* **Time Intervals**: 15, 30, or 60 minutes.
* **Buffer Before / After**: 0–30 minutes.
* **Min Notice**: 0 minutes up to 1 day.
* **Book Window**: 15–90 days.

### Add custom questions

<figure><img src="/files/7TvRpbnPW8ziTbLIASD2" alt=""><figcaption></figcaption></figure>

Open **Questions** to collect extra details from guests.

#### Default fields

* **Name** (required)
* **Email** (required)

#### Add a custom question

1. Click **Add Custom Question**.
2. Configure:
   * **Question Text**
   * **Question Type**: text field, dropdown, or checkbox
   * **Required**
   * **Placeholder**
3. Drag and drop to reorder questions.

### Configure calendar invite

<figure><img src="/files/5p1PCdBMkZkaNMC4q6pa" alt=""><figcaption></figcaption></figure>

In **Calendar Invite**, click **Edit invite**.

* **Calendar Title**: supports variables.
* **Calendar Description**: supports variables.

#### Available variables

| Variable                 | Description            |
| ------------------------ | ---------------------- |
| `{{prospect.firstname}}` | Guest’s first name     |
| `{{prospect.lastname}}`  | Guest’s last name      |
| `{{prospect.email}}`     | Guest’s email          |
| `{{host.firstname}}`     | Organizer’s first name |
| `{{host.lastname}}`      | Organizer’s last name  |
| `{{org.name}}`           | Organization name      |
| `{{booking.duration}}`   | Meeting duration       |
| `{{booking.start_time}}` | Meeting start time     |
| `{{join_link}}`          | Meeting join URL       |
| `{{reschedule_link}}`    | Reschedule link        |
| `{{cancel_link}}`        | Cancellation link      |

### Configure email reminders

<figure><img src="/files/8WnzTyLRenmo8WlENd4H" alt=""><figcaption></figcaption></figure>

Open **Reminder** to set up automated reminder emails.

1. Toggle **Enable Reminder** on.
2. Configure:
   * **Time Before Event**: when to send (example: 30 minutes before).
   * **Email Subject**
   * **Email Content** (supports the same variables as calendar invites).

### Configure confirmation page

<figure><img src="/files/rKRsdq65gjFFsEBv5zHG" alt=""><figcaption></figcaption></figure>

Open **Confirmation Page** to control the post-booking experience.

* **Redirect After Confirmation**: redirect guests to a custom URL.
* **Redirect URL**: the URL to send guests to after booking.

### Share your group booking link

Group booking links follow this format:

```
https://yourdomain.com/group/{organizer-username}/{slug}
```

Example:

`https://app.example.com/group/john-smith/sales-team-demo`

### How availability works

Group booking links show only time slots where **every selected member is free**.

The scheduler:

1. Checks each member’s connected calendar for conflicts.
2. Applies each member’s availability rules.
3. Applies buffer times around events.
4. Shows only overlapping available slots.

When a guest books:

* A calendar event is created for all team members.
* All members receive a booking notification email.
* The guest receives a confirmation email with the details.


# Manage Booking Links

As an administrator, you can manage booking links for all users in your organization. This guide explains how to create, edit, and monitor booking links across your team.

### Creating Booking Links for Team Members

To create a booking link for another user:

{% stepper %}
{% step %}
Navigate to **Booking Links** in the sidebar
{% endstep %}

{% step %}
Select "All Members Links"
{% endstep %}

{% step %}
Click "+ New Booking Link"

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

{% step %}
Choose the team member from the dropdown menu

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

{% step %}
Set up the link following the standard booking link configuration
{% endstep %}
{% endstepper %}

### Filter Booking Links by Team Member

When viewing all booking links:

* Use the User filter dropdown to find links for specific team members
* Enter a team member's name or email in the filter search box
* Click "Apply" to filter the list
* Use "Clear all filters" to reset your view

<figure><img src="/files/wt2TaQod2izi8lHcGrNg" alt=""><figcaption></figcaption></figure>


# 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" %}
```


# Salesforce

Integrate Distro with Salesforce to optimize your meeting scheduling process and ensure your CRM data is consistently synchronized. This integration provides automatic lead creation, contact creation, updates, and efficient meeting management within Salesforce.

## Connect Distro with Salesforce

When connecting Salesforce, Distro requests the following permissions:

{% hint style="success" %}

* Read and write access to Leads
* Read and write access to Contacts
* Read and write access to Accounts
* Read and write access to Events
* Read access to user information
  {% endhint %}

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

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

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

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

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

## What does Distro do to your Salesforce account

#### Lead/Contact Management <a href="#leadcontact-management" id="leadcontact-management"></a>

When enabled in your router settings, Distro can:

* Create new Leads or Contacts based on your configuration
* Search for existing Contacts by email
* Update Lead/Contact information when matches are found
* Modify Lead/Contact ownership based on meeting assignments

#### Meeting Management <a href="#meeting-management" id="meeting-management"></a>

Distro creates and manages activities in Salesforce by:

* Creating Event records when bookings are confirmed
* Updating Event statuses (Scheduled, Rescheduled, Completed, No Show, Cancelled)
* Linking Events to associated Leads/Contacts
* Setting Event properties:
  * Meeting title
  * Start and end times
  * Meeting location (Remote)
  * Meeting status
  * External meeting URL

## Custom Properties in Salesforce <a href="#custom-properties-in-salesforce" id="custom-properties-in-salesforce"></a>

Distro automatically creates custom fields in Salesforce to track meeting and prospect information. These fields are created for Lead, Contact, and Activity objects.

#### Important: Field Visibility Requirements <a href="#important-field-visibility-requirements" id="important-field-visibility-requirements"></a>

Before using these custom fields:

1. Navigate to Setup in Salesforce
2. Go to Object Manager
3. Select the respective object (Lead, Contact, or Activity)
4. Go to Field & Relationships
5. For each Distro custom field:
   * Click on the field name
   * Click on "Set Field-Level Security"
   * Ensure the field is visible for all necessary profiles
   * Click on "Page Layouts"
   * Add the field to the appropriate page layouts

Without proper field visibility settings, the integration may not function correctly.

#### Lead Custom Fields <a href="#lead-custom-fields" id="lead-custom-fields"></a>

* **Distro Meeting Type** (`Distro_Meeting_Type__c`)
  * Type: Text (100 characters)
  * Tracks the type of meeting scheduled
* **Distro Meeting Date** (`Distro_Meeting_Date__c`)
  * Type: DateTime
  * Records when the meeting is scheduled
* **Distro Meeting Status** (`Distro_Meeting_Status__c`)
  * Type: Picklist
  * Values:
    * Scheduled
    * Rescheduled
    * Completed
    * No Show
    * Cancelled
* **Distro No Show** (`Distro_No_Show__c`)
  * Type: Checkbox
  * Indicates if the prospect missed the meeting
* **Distro Router Name** (`Distro_Router_Name__c`)
  * Type: Text (75 characters)
  * Stores the name of the Distro router used
* **Distro Meeting Created At** (`Distro_Meeting_Created_At__c`)
  * Type: DateTime
  * Records when the meeting was initially created

#### Contact Custom Fields <a href="#contact-custom-fields" id="contact-custom-fields"></a>

The same fields are created for Contacts:

* `Distro_Meeting_Type__c`
* `Distro_Meeting_Date__c`
* `Distro_Meeting_Status__c`
* `Distro_No_Show__c`
* `Distro_Router_Name__c`
* `Distro_Meeting_Created_At__c`

#### Activity Custom Fields <a href="#activity-custom-fields" id="activity-custom-fields"></a>

Activity objects receive the following custom fields:

* `Distro_Meeting_Type__c` (Text, 75 characters)
* `Distro_No_Show__c` (Checkbox)
* `Distro_Canceled__c` (Checkbox)
* `Distro_Router_Name__c` (Text, 75 characters)

These custom fields are automatically created when you connect Salesforce to Distro, allowing you to track and report on meeting-related data within your Salesforce instance.

## What Happens When a Form is Submitted?

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

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

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

D --> D1{Meeting Owner in CRM?}
D1 -->|Yes| D2[Update Owner Field]
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 Event Record]
G --> H[Update Lead/Contact Fields]

subgraph "Rule-Based Updates"
    D2 --> RU1[Wait 30s]
    RU1 --> RU2[Update Salesforce Owner]
    D4 --> RU3[Apply Field Updates]
    RU3 --> RU4[Update Custom Fields]
end

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

subgraph "Lead/Contact Decision"
    C2 --> LC1{Existing Contact?}
    LC1 -->|Yes| LC2[Use Contact]
    LC1 -->|No| LC3{Create as Lead?}
    LC3 -->|Yes| LC4[Create Lead]
    LC3 -->|No| LC5[Create Contact]
end
```

```"
```


# Calendars

Integrating your personal calendar, whether it's Google or Outlook, is a mandatory step to fully utilize Distro. This connection allows prospects to directly book meetings into your calendar, ensuring a seamless scheduling experience.

## Connect a calendar

Follow these steps to connect your calenda&#x72;**:**

{% stepper %}
{% step %}
Navigate to **Settings** in your Distro account
{% endstep %}

{% step %}
Select **My Integrations** from the options
{% endstep %}

{% step %}
Choose the calendar service you use (Google or Outlook) and follow the prompts to integrate it with Distro
{% endstep %}
{% endstepper %}

<figure><img src="/files/dNTLUFEj9rydYyrWzimK" alt=""><figcaption></figcaption></figure>

Once your calendar is connected, you're all set to have meetings scheduled without the back-and-forth. Get ready to meet with prospects more efficiently than ever before!

## Setting a default calendar

This setting determines where new events will appear when someone books time with you. You can select from any calendar you've connected to your account.

{% hint style="info" %}
Your selected calendar will be used as the default destination for all new bookings unless otherwise specified.
{% endhint %}

To specify which calendar receives your booking events:

{% stepper %}
{% step %}
Navigate to **Settings**
{% endstep %}

{% step %}
Select **Calendars** from the sidebar menu
{% endstep %}

{% step %}
Under "Add to calendar," choose your preferred calendar from the dropdown menu
{% endstep %}

{% step %}
Click "Update" to save your selection
{% endstep %}
{% endstepper %}

<figure><img src="/files/Oman4sMQq3zj3XviNpEP" alt=""><figcaption></figcaption></figure>

[<br>](https://docs.distro.so/settings/personal-settings/my-availability)


# Conference tools

You can integrate your preferred video conferencing platform with Distro. Each platform has specific calendar requirements.

### Connecting Conferencing Platforms

{% stepper %}
{% step %}
Go to **Settings** → **My Integrations**
{% endstep %}

{% step %}
Under the "Videoconferencing" section, you'll find supported platforms
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Before setting up video conferencing, ensure you have connected the required calendar:

* Google Meet requires Google Calendar integration
* Microsoft Teams requires Outlook Calendar integration
  {% endhint %}

<figure><img src="/files/5sQtMD42Yut8kByrZElA" alt=""><figcaption></figcaption></figure>

## Setting a default videoconferencing

{% stepper %}
{% step %}
Navigate to **Settings** → **Conferencing**
{% endstep %}

{% step %}
Select your preferred videoconferencing platform as the default
{% endstep %}

{% step %}
This videoconferencing platform will automatically generate meeting links for all new bookings
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Each conferencing platform will automatically create unique meeting IDs when bookings are made. For example, Zoom will generate a new meeting ID for each booking.
{% endhint %}

<figure><img src="/files/1ETMbVSdPmnVZ91TSNFJ" alt=""><figcaption></figcaption></figure>


# Chrome Extension

## Download the Chrome Extension

{% stepper %}
{% step %}
Download the Chrome Extension to be able to schedule and manage your bookings directly from your web browser.
{% endstep %}

{% step %}
Once installed do not forget to pin the Distro chrome extension to your extensions bar.

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

{% step %}
You will be asked to login the first time you open the app.

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

{% step %}
Visit any website to use the chrome extension.

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


# JavaScript events


# Personal Settings

***


# Profile

Want to personalize your profile in Distro? Here's how.

## **How to Set Up Your User Profile in Distro** <a href="#how-to-set-up-your-user-profile-in-distro" id="how-to-set-up-your-user-profile-in-distro"></a>

#### **Access the My Profile tab** <a href="#access-the-my-profile-tab" id="access-the-my-profile-tab"></a>

1. From the side navigation bar, select “Settings.”
2. Click on “My Profile.”

Ensuring your timezone is correctly set in Distro helps in synchronizing your bookings and interactions with others.

#### **Upload a profile picture** <a href="#upload-a-profile-picture" id="upload-a-profile-picture"></a>

1. In the Avatar section, click on the avatar icon. This will open the file selector.
2. Choose a preferred image to set as your profile picture.

#### Setting your timezone <a href="#setting-your-timezone" id="setting-your-timezone"></a>

<figure><img src="/files/wTX7zhXdFFXVB3e0ao6C" alt=""><figcaption></figcaption></figure>


# My Availability

Ensuring that your availability is accurately reflected in Distro is crucial for maintaining control over your schedule and making sure that meetings are booked at convenient times.

Here’s how to set your availability:

Simply go to Settings and click on My availability to specify the days and times when you are open to accepting meetings. This way, you can manage your workload and avoid double-bookings or scheduling conflicts.

<figure><img src="/files/WrvZqE4OgZMQ13GdtUeH" alt=""><figcaption></figcaption></figure>

Take charge of your calendar today with Distro's easy-to-use availability settings!

{% content-ref url="/pages/z04kBP8c1ndhqMcUUyn0" %}
[Calendar Troubleshooter](/settings/calendar-troubleshooter)
{% endcontent-ref %}


# Security


# Workspace Settings

***


# General

Personalizing your Distro workspace is not just about aesthetics; it’s about creating an environment that resonates with your brand and enhances recognition among your team and clients.

**Personalize with These General Settings:**

* **Workspace Name:** Reflect your brand’s identity by customizing the workspace name. This name will be visible to your team and clients, reinforcing brand consistency across your platform.
* **Workspace Logo:** Upload your company logo to add a professional touch to your workspace. Your logo will appear on the booking page, emails, and other client-facing communications.
  \*

  ```
  <figure><img src="/files/tDyFixAtvW4siYlCN37j" alt=""><figcaption></figcaption></figure>
  ```
* **Account Ownership:** Ensure the right management and control by managing who owns the account. The owner has critical access to settings and administrative privileges.

Adjust these settings to align with your company’s branding and maintain the proper administration of your account.

<figure><img src="/files/kGsUZsAgMVY4wVY3VjFe" alt=""><figcaption></figcaption></figure>


# Members

A well-organized team structure within your Distro workspace is key to a smooth operation. Managing members, handling invitations, and defining user roles are fundamental to maintaining order and clarity.

Here's how to manage your team within Distro:

* **Manage Members:** Keep your team’s details up-to-date. You can add or remove members, update their information, or change their roles as necessary.
* **Manage Invitations:** Control who gets access to your workspace. Send out invitations to new members, track pending invites, and manage follow-ups for those who haven't yet responded.
* **Types of Users:** Assign the correct roles to your team members. Distinguish between Members, who have standard access, and Admins, who are granted administrative privileges for broader control over the workspace.

Effective team management ensures that everyone has the appropriate level of access and that your workspace remains secure and efficient.

<figure><img src="/files/Ui09fSnTjO44UVaKudk2" alt=""><figcaption></figcaption></figure>


# Managing Member Availability

As an administrator, you can manage your team members' availability settings in Distro. This is particularly useful when:

* A team member hasn't configured their availability yet
* You need to verify a team member's current settings
* You want to make quick adjustments to someone's schedule
* A team member needs help setting their timezone correctly

## How to Access Member Settings

{% stepper %}
{% step %}
Navigate to **Settings** in the main sidebar
{% endstep %}

{% step %}
Click on **Members** to view your team
{% endstep %}

{% step %}
Find the team member you want to manage
{% endstep %}

{% step %}
Click the more options icon (⋮) on the right side of their row

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

{% step %}
Select **Manage User Preferences** from the dropdown menu
{% endstep %}
{% endstepper %}

## Managing Availability

Once in the user preferences panel, you can:

### Set Working Hours

* Choose which days of the week the member is available
* Set specific time slots for each working day
* Add multiple time slots per day if needed (e.g., morning and afternoon blocks)

### Configure Time Zone

* Select the appropriate timezone for the team member
* This ensures accurate scheduling across different regions
* Helps prevent scheduling conflicts for global teams

<figure><img src="/files/92rPMXRaW8zDgNWMIXA4" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/z04kBP8c1ndhqMcUUyn0" %}
[Calendar Troubleshooter](/settings/calendar-troubleshooter)
{% endcontent-ref %}


# Default availability

## Default Availability & Timezone Settings

As a workspace administrator, you can configure default availability and timezone settings that will automatically apply to new team members when they join your workspace.

{% hint style="success" %}
Existing team members' availability and timezone settings will not be affected
{% endhint %}

### Default Timezone

* When enabled, new team members will automatically have their timezone set to the workspace's default timezone
* Team members can change their timezone at any time after joining
* This feature helps ensure consistent timezone settings across your team from the start

<figure><img src="/files/wSnLgrKfZTtotWWzCs0z" alt=""><figcaption></figcaption></figure>

### Default Availability

* When enabled, new team members will inherit the workspace's default availability schedule
* Team members can customize their availability settings after joining
* This feature helps maintain consistent scheduling patterns across your team

<figure><img src="/files/toU6FMnSn8eNAVaJYJYl" alt=""><figcaption></figcaption></figure>


# Scheduler Settings

Distro gives you the flexibility to control how long the booking page is displayed after a meeting is scheduled. Tailoring this setting can enhance the user experience by ensuring they have enough time to confirm details or take note of the meeting information.

Customize this setting to fit your preference and provide a smoother scheduling process for your prospects.

To set the number of seconds that the booking page remains visible post-booking:

<figure><img src="/files/knG0UXVfqLfZW6R97Tbg" alt=""><figcaption></figcaption></figure>


# Vacation

Vacation and distribution settings allow you to easily control how leads are distributed across your workspace and team members.

## How does Distro handle vacations?

Distro can automatically detect vacations from a team member's calendar. It looks for full-day busy events (24-hour slots with no gaps). These can be single days or recurring events. Partial day blocks are not counted as vacation time.

When a team member has a full-day block, Distro will skip them in the round-robin assignment and give leads to other available team members.

Distro treats distribution rules and ownership rules differently:

{% tabs %}
{% tab title="Distribution Rules" %}

* Use the "cover for colleague" logic by default
* This means if the assigned person is unavailable, Distro will try to find a suitable replacement
  {% endtab %}

{% tab title="Ownership Rules" %}

* Simply skip unavailable users based on the settings
* No attempt is made to find a replacement; it just moves to the next available person in the rotation
  {% endtab %}
  {% endtabs %}

This distinction allows for more flexibility in how leads are handled when team members are unavailable, depending on which type of rule is being applied.

## Distribution Rules <a href="#distribution-rules" id="distribution-rules"></a>

Toggle the vacation calibration setting if you want to remove users from metting assignments during their vacation.

<figure><img src="/files/2vP5dJm1Y2P6mQfcWVfx" alt=""><figcaption></figcaption></figure>

### **Vacation Buffer**

The vacation buffer setting controls when team members are removed from and re-added to lead distribution around their vacation periods.

<figure><img src="/files/VTdQ8xNRsC2QaEdYGoFL" alt=""><figcaption></figcaption></figure>

Let's say Emma has a vacation from March 10th to March 20th, and the vacation buffer is set to 2 days before and 1 day after.

* Emma will stop receiving leads on March 8th (2 days before vacation starts)
* She'll start receiving leads again on March 19th (1 day before vacation ends)

#### **Key Points**

1. **Zero Buffer**: If set to "0", the team member is removed on the first day of vacation and added back on the last day.
2. **Buffer Longer than Vacation**: If the buffer is longer than the vacation (e.g., 5-day buffer for a 3-day vacation), the team member remains in the distribution.
3. **Different Before/After Settings**: You can set different numbers for the before and after buffers.
4. **Partial Days**: The system only considers full days for vacation and buffer calculations.

## Ownership Rule <a href="#matching-rule" id="matching-rule"></a>

Toggle the Cover for colleagues on vacation setting if you want to re-route meeting assignments to a designated colleague during their vacation.

<figure><img src="/files/flc4Os1XIWL8PwJovrmK" alt=""><figcaption></figcaption></figure>

### Cover for colleagues on vacation buffer <a href="#cover-for-colleagues-on-vacation-buffer" id="cover-for-colleagues-on-vacation-buffer"></a>

{% hint style="danger" %}
Distro will never update lead/contact owner in the CRM when cover for colleagues is triggered.
{% endhint %}

The cover for colleagues on vacation buffer set how many days before/after the vacation the colleague should receive meeting assignments.

<figure><img src="/files/y6Qmx0bMRsZImgI4T6kI" alt=""><figcaption></figcaption></figure>

## Design a colleague <a href="#design-a-colleague" id="design-a-colleague"></a>

Users can set up a colleague themselves. Head to Settings -> Profile

<figure><img src="/files/LKC4rGhqj2RbzWJWBmTi" alt=""><figcaption></figcaption></figure>

Admins can also manage the users settings. Head to Settings -> Members

<figure><img src="/files/m2Ti7IrXB2bzLQQ7h8B1" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/f5xU4JuS9Rf7y1lIuTC8" alt=""><figcaption></figcaption></figure>


# Mark Calendar

Distro can automatically detect vacations from a team member's calendar. It looks for full-day busy events (24-hour slots with no gaps). These can be single days or recurring events. Partial day blocks are not counted as vacation time.

### Google Calendar <a href="#google-calendar" id="google-calendar"></a>

* Event must be marked as "All day"
* The visibility of the event must be "Busy"

<figure><img src="/files/iyTRzortEux2x7jOMPQS" alt=""><figcaption></figcaption></figure>


# Email Configuration

**Better Deliverability**: Emails sent from your own domain have higher deliverability rates and are less likely to be marked as spam.

**Brand Consistency**: Instead of emails coming from `notifications@distro.so`, they'll come from your company's domain (e.g., `notifications@yourdomain.com`).

**Professional Appearance**: Custom domains make your communications look more professional and trustworthy to recipients.

{% hint style="info" %}
**Automatic Fallback**: If your custom domain becomes unavailable, the system automatically falls back to the default email address.
{% endhint %}

## Configure your custom email domain

{% stepper %}
{% step %}
Navigate to **Settings** → Email Configuration
{% endstep %}

{% step %}
Enter your domain (e.g., `yourdomain.com`) in the domain field

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

{% step %}
Configure DNS Records. After adding your domain, you'll receive DNS records that need to be added to your domain's DNS settings

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

{% step %}
After adding DNS records, click "Verify Domain"

This process may take up to 24-48 hours for DNS propagation
{% endstep %}

{% step %}
Once verified, you can customize your email prefix:

* Enter your desired prefix (e.g., `sales`, `support`, `contact`)
* Your emails will now come from `prefix@yourdomain.com`

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


# Calibration

## Round Robin Calibration

Round Robin Calibration allows you to fine-tune your lead distribution system to ensure fair allocation and optimize team performance. These settings apply to both Distribution Rules and Click Routers that use round robin assignment methods.

### Reset Frequency

<figure><img src="/files/ViIRCQa6p3LykvR2JC80" alt=""><figcaption></figcaption></figure>

Control how often the assignment history resets for distribution rules and click routers. This helps maintain balanced lead distribution over time and prevents long-term imbalances.

| Setting       | Description                                                       |
| ------------- | ----------------------------------------------------------------- |
| **Monthly**   | Assignment history resets at the beginning of each month          |
| **Quarterly** | Assignment history resets every three months (Jan, Apr, Jul, Oct) |
| **Yearly**    | Assignment history resets at the beginning of each year           |

{% hint style="info" %}
**Best Practice**: Choose a reset frequency that aligns with your sales cycles. For shorter sales cycles, monthly resets work well. For longer enterprise sales cycles, quarterly or yearly resets may be more appropriate.
{% endhint %}

### Compensation Settings

<figure><img src="/files/NKpvR3n3BS70WjT824t1" alt=""><figcaption></figcaption></figure>

#### Compensate for Vacation & Holidays

When enabled, team members who are on vacation or holiday will receive additional meeting credits to ensure balanced distribution when they return.

**How it works**:

1. When a team member is on vacation, they are temporarily removed from the assignment rotation
2. The system tracks meetings they would have received during this period
3. Upon return, they receive compensation credits to catch up with their peers

{% hint style="info" %}
**Note**: This only applies to strict round robin distribution. For flexible distribution, team members on vacation are automatically excluded without compensation.
{% endhint %}

#### Compensate for Cancelled Meetings

When enabled, team members will receive a meeting credit when a prospect cancels their meeting.

**How it works**:

1. When a prospect cancels a scheduled meeting, the system detects the cancellation
2. The originally assigned team member receives a credit in the round robin system
3. This credit increases their priority in future assignments

{% hint style="info" %}
**Best Practice**: Enable this option to ensure team members don't lose opportunities due to circumstances outside their control.
{% endhint %}

#### Compensate for No-Show Meetings

When enabled, team members will receive a meeting credit when a prospect fails to attend a scheduled meeting.

**How it works**:

1. When a prospect doesn't show up for a meeting, the system detects the no-show
2. The team member receives a credit in the round robin system
3. This credit increases their priority in future assignments

{% hint style="info" %}
**Best Practice**: Enable this option to ensure fair distribution, especially if no-shows are common in your industry.
{% endhint %}

#### Compensate for Reassigned Meetings

When enabled, the system will add a meeting credit to the originally assigned team member and remove a credit from the new assignee when meetings are reassigned.

**How it works**:

1. When a meeting is reassigned from one team member to another
2. The original assignee receives a credit in the round robin system
3. The new assignee has a credit deducted from their count
4. This maintains balance in the distribution system

{% hint style="info" %}
**Best Practice**: Enable this option when meeting reassignments are common to prevent gaming the system and ensure fair distribution.
{% endhint %}

### Implementation Examples

{% tabs %}
{% tab title="Inside Sales Team" %}
A high-volume inside sales team uses monthly resets with selective compensation:

1. They set the round robin reset frequency to monthly
2. Enable compensation for reassigned meetings only
3. This allows managers to reassign meetings when necessary without disrupting the distribution balance
4. Monthly resets ensure regular rebalancing for their fast-paced environment
   {% endtab %}

{% tab title="Enterprise Sales Team" %}
An enterprise sales team with long sales cycles uses yearly resets with comprehensive compensation:

1. They set the round robin reset frequency to yearly
2. Enable all compensation settings
3. This ensures that over the course of a year, all reps get equal opportunities
4. Compensation for cancellations and no-shows is critical due to the high value of each meeting
   {% endtab %}
   {% endtabs %}


# SAML SSO


# Calendar Troubleshooter

The Calendar Troubleshooter helps you understand why certain times are or aren't available for scheduling. Think of it as an X-ray for your calendar - it shows you exactly what's happening behind the scenes.

<figure><img src="/files/ZLRxx0PZvuTNPQHJkpWq" alt=""><figcaption></figcaption></figure>

## Preview Your Calendar Availability

#### From My Availability

<figure><img src="/files/dt0NPufSuVCo2oysWBJR" alt=""><figcaption></figcaption></figure>

{% stepper %}
{% step %}
Click on "My Availability" in the navigation
{% endstep %}

{% step %}
Look for the "Preview availability" button at the top
{% endstep %}

{% step %}
Click it to see how your calendar appears to others
{% endstep %}
{% endstepper %}

#### From Team Members

<figure><img src="/files/yjD2Pw2JyI8WjGPgjVdj" alt=""><figcaption></figcaption></figure>

{% stepper %}
{% step %}
Go to "Members" in the navigation
{% endstep %}

{% step %}
Click "Manage User Preferences"
{% endstep %}

{% step %}
Navigate to the "Availabilities" section
{% endstep %}

{% step %}
Click the "Preview availability" button
{% endstep %}
{% endstepper %}

### What You'll See

The preview shows you exactly what people see when they try to book time with you:

* **Available slots**: Times when people can schedule meetings
* **Unavailable times**: When you're busy or outside working hours
* **Buffer periods**: Protected time before and after meetings

### Understanding Your Calendar View

At the top, you'll see important details about your scheduling:

* Meeting duration
* Buffer times
* Your time zone
* Scheduling intervals

> 💡 **Pro Tip**: Your browser's time zone is shown automatically to help you spot any time zone conflicts.

### Common Questions

<details>

<summary>Why aren't some times bookable?</summary>

Usually because:

* You have existing meetings
* It's outside your set working hours
* There isn't enough buffer time between meetings

</details>

<details>

<summary>How do I fix availability issues?</summary>

1. Go back to your availability settings
2. Adjust your working hours
3. Modify buffer times if needed
4. Save your changes
5. Preview again to confirm the changes

</details>

<details>

<summary>What are buffer times?</summary>

Buffer times protect you from back-to-back meetings:

* **Before meetings**: Time to prepare
* **After meetings**: Time to wrap up

</details>


# Terms of Service

**Effective date: 1st June 2023**

**Last updated on: 30th October 2023**

These Terms of Use (“**Terms**”) describe the terms under which **Distro Inc** (“**We**”, “**Our**” “**Us**”) provide a subscriber access to and use of Our Service(s) (“**You**”, “**Your**”, “**Yourself**”). By accessing and/or using Our Service,\
\
(a) You agree to be bound by these Terms and acknowledge having read the privacy policy located at <https://privacy.distro.so> (“**Privacy Policy**”).\
\
(b) You warrant to us that you are of 18 years or above and are competent to enter into this agreement\
\
(c) That, in the event You are entering into these Terms on behalf of any entity/company or its group, You possess the requisite authority to bind such entities, company or its groups to these Terms. If You do not agree to these Terms, You should immediately cease using our Service(s).\
\
You and Us will be individually referred to as “**Party**” and collectively as “**Parties**”.

**1. YOUR RIGHTS**

**1.1.** Subject to Your compliance with these Terms and solely during the Subscription Term, You shall have the limited, non-exclusive, revocable right to access and use the Service(s) for your internal business purposes in accordance with the subscription plan as specifically stated in Our Website or in an Order Form.

**2. YOUR RESPONSIBILITIES**

**2.1. Your Account:** Your access and use of the Service(s) is restricted to the specified number of individual Users as specified in the relevant Order Form, if any, executed between Us and Yourself. Each User shall be identified using unique login information such as usernames and passwords (“**User Login**”) and such User Login shall be used only by one individual.\
\
‍**2.2. Acceptable Use:** You agree not to\
\
(a) license, sublicense, sell, resell, rent, lease, transfer, assign, distribute, time share or otherwise commercially exploit or make the Service(s) available to any third party, other than Users in furtherance of Your internal business purposes as expressly permitted by these Terms;\
\
(b) modify, adapt, or hack the Service(s) or otherwise attempt to gain or gain unauthorized access to the Service(s) or related systems or networks;\
\
(c) use the Service(s), store or transmit Sensitive Personal Information;\
\
(d) use the Service(s), store or transmit Customer Data in violation of applicable laws and regulations, including but not limited to violation of any person’s privacy rights, export control laws/regulations;\
\
(e) use the Service(s) to store or transmit any content that infringes upon any person’s intellectual property rights or is unlawful, racist, hateful, abusive, libelous, obscene, or discriminatory;\
\
(f) use the Service(s) to knowingly post, transmit, upload, link to, send or store any viruses, malware, trojan horses, time bombs, or any other similar harmful software;\
\
(g) “crawl,” “scrape,” or “spider” any page, data, or portion of or relating to the Services (through use of manual or automated means);\
\
**2.3**. You represent and warrant to Us that You own or have the necessary rights to transmit the Customer Data to Us and that doing so does not violate any applicable law, proprietary or privacy rights.\
\
**2.4**. If We inform You that a specified activity or purpose is prohibited with respect to Service(s), You will ensure that You immediately cease the use of Service(s) for such prohibited activity or purpose.

**3. SERVICE(S)**

**3.1**. You may request a demo of Our Service(s) or a trial of the Service(s) by creation of accounts for trial use for a limited period of time (“**Trial Period**”). The Trial Period shall be subject to these Terms and any additional terms that We specify. We, in our sole discretion, shall have the right to terminate the Service(s) and Your right to use the Service(s) at any time during the Trial Period and for any reason, without being liable to You.\
‍\
**3.2.** Any enhancements, new features or updates (“**Updates**”) to the Service(s) are also subject to these Terms and We reserve the right to deploy Updates at any time.\
‍\
**3.3.** The Service(s) may temporarily be unavailable due to scheduled downtime for upgrades and maintenance in which case We shall use commercially reasonable endeavours to notify You in advance.

**4. INTELLECTUAL PROPERTY RIGHTS**

**4.1.** Except for the rights granted to You under clause 1, all rights, title and interest in and to all intellectual property and/or proprietary rights, title and interest in or related to the Service(s), including patents, inventions, copyrights, trademarks, domain names, trade secrets or know-how (collectively, “**Intellectual Property Rights**”) shall belong to and remain exclusively with Us.\
\
**4.2.** You own the rights to the Customer Data that You provide to Us. We do not claim ownership over such Customer Data. We shall have the right to Process the Customer Data for the purpose of providing, supporting, operating, maintaining, and improving the Service(s).\
\
**4.3.** We shall have a perpetual, worldwide, transferable, and royalty-free right and license to incorporate into Service(s) or otherwise use any suggestions, enhancement requests, recommendations, or other feedback You choose to provide Us.\
\
**4.4.** All rights not expressly provided to You herein are reserved.

**5. THIRD PARTY SERVICES**

You acknowledge and agree that Your use of Third-party Services will be subject to the terms and conditions and privacy policies of such third-party and that We shall not be liable for Your enablement, access or use of such Third-party Services, including Your data processed by such third party. You should contact that Third- party service provider for any issues arising in connection with use of such Third-party Service.

**6. CHARGES AND PAYMENT**

**6.1**. Subscription Charges:  All charges associated with Your Account shall be based on the plan You have subscribed at the prices listed at Our Website (“**Subscription Charges**”) and any other details regarding such Subscription Charges shall be mentioned in an Order Form. The Subscription Charges are due in full and payable in advance in accordance with clause 6.2, when You subscribe to the Service(s).\
‍\
**6.2.** Payment: You hereby authorize Us or Our authorized agents, as applicable, to bill You upon Your subscription to the Services (and any renewal thereof). Unless otherwise stated in an Order Form, Your payment is due within thirty (30) days of our invoice date.\
\
**6.3.** Refunds: Unless otherwise specified in an Order Form, all Subscription Charges are non-refundable. No refunds shall be issued for partial use or non-use of the Service(s).\
‍\
**6.4.** Late Payments/Non-payment of Subscription Charges: We will notify You in the event We do not receive payment towards Subscription Charges within the due date. We must receive payments within a maximum of ten (10) days from the date of Our notice. If We do not receive payment within the foregoing time period, in addition to our right to other remedies available under law, We may\
\
(i) charge an interest for late payment @ 1.5% per month and/or;\
\
(ii) suspend Your access to and use of the Services until We receive Your payment towards the Subscription Charges as specified herein and/or;\
\
(iii) terminate Your Account.\
‍\
**6.5. Applicable Taxes:** Unless otherwise stated, the Subscription Charges do not include any taxes, levies, duties or similar governmental assessments, including value-added, sales, use or withholding taxes assessable by any local, state, provincial or foreign jurisdiction (collectively “**Taxes**”).

**7. TERM, TERMINATION AND SUSPENSION**

**7.1.** The Subscription Term shall be set forth on the Website or in a relevant Order Form.\
\
**7.2.** **Termination by You:** You may terminate your Account and subscription to the Services at any time, by providing us a prior written notice of thirty (30) days, however You will remain liable for all Subscription Charges for the Subscription Term.\
\
**7.3. Suspension and Termination by Us:** In addition to suspension for late payment or non-payment of Subscription Charges, We may suspend Your access to and use of Your Account or the Service(s) if You are in violation of these Terms. We will notify You if your activities violate these Terms and, at Our sole discretion, provide You with a period of fifteen (15) days (“**Cure Period**”) to cure or cease such activities. If You fail to cure or cease such activities within said Cure Period or if We believe that such breaches cannot be cured, Your Account shall be terminated. We may also terminate a Trial Period in accordance with clause 3.1. Further, We also reserve the right to terminate Your Account at any time by written notice due to business reasons which shall include discontinuation of the Services.\
\
**7.4.** **Termination for Insolvency:** Notwithstanding anything contained herein, either Party may terminate these Terms with notice if the other Party becomes insolvent, makes or has made an assignment for the benefit of creditors, is the subject of proceedings in voluntary or involuntary bankruptcy instituted on behalf of or against such Party (except for involuntary bankruptcies which are dismissed within sixty (60) days), or has a receiver or trustee appointed for substantially all of its property.\
\
**7.5.** **Effect of Terminating Your Account:** Following the termination of Your Account either by Yourself or by Us, Your access and use of the Services shall ceas&#x65;*.* We retain all Customer Data in our possession for fifteen (15) days from the date of effective termination (“**Data Retention Period**”).   Beyond the Data Retention Period, We reserve the right to delete all the Customer Data in our possession.<br>

**8. CONFIDENTIALITY; DATA PRIVACY AND SECURITY**<br>

**8.1.** If You choose, or are provided with, a user identification code, login, password or any other piece of information as part of Our security procedures, You must treat such information as confidential. You must not disclose it to any third party. We shall have the right to disable any user identification code or password, whether chosen by You or allocated by Us, at any time, if in Our reasonable opinion, You have failed to comply with any of the provisions of these Terms. We will not be responsible for any activities, including any attempted or actual access or loss of data occurring in Your Account as a result of your non-compliance of obligations under this clause.\
\
**8.2.** Each of the Parties will protect the other’s Confidential Information from unauthorized use, access or disclosure in the same manner as each of the Parties protects its own Confidential Information, and in any event, no less than reasonable care. Except as otherwise expressly permitted pursuant to these Terms, each of the Parties may use the other’s Confidential Information solely to exercise its respective rights and perform its respective obligations under these Terms and shall disclose such Confidential Information solely to those of its respective employees, representatives and agents who have a need to know such Confidential Information for such purposes and who are bound to maintain the confidentiality of, and not misuse, such Confidential Information. The provisions of this clause shall supersede any non-disclosure agreement by and between the Parties entered prior to these Terms that would purport to address the confidentiality of Customer Data and such agreement shall have no further force or effect with respect to Customer Data.\
‍\
**8.3**. We shall use appropriate technical and organizational measures to protect the Customer Data. The measures used are designed to provide a level of security appropriate to the risk of Processing the Customer Data. We shall, without undue delay, notify You of any accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to the Customer Data processed by Us.\
\
**8.4.** You acknowledge that We shall Process Customer Data only to provide, maintain and improve the Services, or prevent or address any technical problems, or at Your request in connection with support requests and in accordance with these Terms and Our Privacy Policy. We shall not Process Customer Data for any purposes other than what is mentioned in these Terms and Our Privacy Policy.\
\
**8.5**. You understand and acknowledge that, in connection with the use of the Service by Yourself, Your Users and/or End Users, We Process any Personal Data only on Your behalf and as a data processor.\
\
**8.6.** You agree and acknowledge that We may collect and use query logs, and any data relating to the operation, support, and/or about Your use of Service(s) (“Usage Data”) to develop, improve, support and operate Service(s).\
\
**8.7.** You understand and acknowledge that, in connection with the use of Service(s) by You, Your Users and/or End-User, We shall Process any Personal Data forming part of Customer Data only on Your behalf and as a data processor. Where We Process Personal Data forming part of Customer Data that originates in the European Economic Area (EEA), the UK or Switzerland, Our Data Processing Agreement available at <https://dpa.distro.so> shall apply to such processing, in addition to these Terms.\
\
**8.8.** You warrant that\
‍\
(a) You have established notices or policies for and ensure compliance with all applicable data protection laws relating to the collection and transmission of Personal Data forming part of Customer Data; and\
\
(b) You have obtained and maintain necessary authorizations, approvals, and permissions for Us to Process such Personal data for the purpose of providing Service(s). You are responsible for the loss, damage, destruction, and unlawful transmission of Personal Data in violation of this Clause and You acknowledge and agree that We shall have no liability for claims arising from Your failure to comply with this Clause. \
\
**8.9.** You acknowledge and agree that We may access or disclose information about You, Your Account, Users, including Customer Data in order to\
\
(a) comply with the law or respond to lawful requests or legal process; or\
\
(b) prevent any infringement of group companies or Our customer's proprietary rights. Further, at Our sole discretion, any suspected fraudulent, abusive, or illegal activity by You may be referred to law enforcement authorities.\
\
**8.10.** We shall reasonably assist You, at Your expense, in meeting Your obligations under applicable data protection laws.

**9. DISCLAIMER OF WARRANTIES**

**9.1.** THE SERVICE(S), INCLUDING ALL SERVER AND NETWORK COMPONENTS ARE PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS. ALL EXPRESS OR IMPLIED REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.\
\
**9.2**. YOU ACKNOWLEDGE THAT WE DO NOT WARRANT THAT THE ACCESS TO THE SERVICE(S), WHICH IS PROVIDED OVER INTERNET AND VARIOUS TELECOMMUNICATIONS NETWORKS, ALL OF WHICH ARE BEYOND OUR CONTROL, WILL BE UNINTERRUPTED, TIMELY, SECURE, ERROR-FREE OR FREE FROM VIRUSES OR OTHER MALICIOUS SOFTWARE.

**10. LIMITATION OF LIABILITY**

**10.1.** TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL EITHER PARTY BE LIABLE TO ANY PERSON FOR ANY INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, COVER OR CONSEQUENTIAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOST REVENUE, LOST SALES, LOST GOODWILL, LOSS OF USE OR LOST CONTENT, IMPACT ON BUSINESS, BUSINESS INTERRUPTION, LOSS OF ANTICIPATED SAVINGS, LOSS OF BUSINESS OPPORTUNITY) HOWEVER CAUSED, UNDER ANY THEORY OF LIABILITY, INCLUDING, WITHOUT LIMITATION, CONTRACT, TORT, WARRANTY, BREACH OF STATUTORY DUTY,NEGLIGENCE OR OTHERWISE, EVEN IF A PARTY HAS BEEN ADVISED AS TO THE POSSIBILITY OF SUCH DAMAGES OR COULD HAVE FORESEEN SUCH DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, OUR AGGREGATE LIABILITY AND THAT OF OUR AFFILIATES, OFFICERS, EMPLOYEES, AGENTS, SUPPLIERS AND LICENSORS, RELATING TO THE SERVICE(S), WILL BE LIMITED TO AN AMOUNT EQUAL TO TWELVE MONTHS OF THE SUBSCRIPTION CHARGES PAID BY YOU FOR THE SERVICE(S) PRIOR TO THE FIRST EVENT OR OCCURRENCE GIVING RISE TO SUCH LIABILITY.\
\
**10.2.** NOTWITHSTANDING ANYTHING ELSE TO THE CONTRARY, WE DISCLAIM ALL LIABILITIES, TO THE MAXIMUM EXTENT PERMITTED BY LAW, WITH RESPECT TO THE SERVICES OFFERED DURING THE TRIAL PERIOD.

**11. INDEMNIFICATION**

**11.1.** Indemnification by You: You will indemnify and hold Us harmless against any claim brought by a third party against Us, Our respective employees, officers, directors and agents arising from Your acts or omissions in connection with clause 2 of these Terms provided that\
\
(a) We promptly notify You of the threat or notice of such a claim,\
\
(b) You will have the sole and exclusive control and authority to select defense attorneys, defend and/or settle any such claim;\
\
(c) We shall fully cooperate with You in connection therewith.

**12. MISCELLANEOUS**

**12.1. Assignment:** These Terms and any rights or obligations hereunder may not be assigned by You without Our prior written consent, whereas We can assign any of our rights and obligations hereunder without Your prior written consent. These Terms bind, and inures to the benefit of, the Parties and their respective successors and permitted assigns.\
\
**12.2.** **Amendment:** We may amend these Terms from time to time, in which case the new Terms will supersede prior versions. We will notify You not less than ten (10) days prior to the effective date of any amendments to these Terms and Your continued use of the Service(s) following the effective date of any such amendment may be relied upon by Us as Your acceptance of any such amendment.\
\
**12.3.** **Severability;** No Waiver: If any provision in these Terms is held by a court of competent jurisdiction to be unenforceable, such provision shall be modified by the court and interpreted so as to best accomplish the original provision to the fullest extent permitted by applicable law, and the remaining provisions of these Terms shall remain in effect. Our non-exercise of any right under or provision of these Terms does not constitute a waiver of that right or provision of These Terms.\
\
**12.4.** **Relationship of the Parties:** The Parties are independent contractors. These Terms do not create a partnership, franchise, joint venture, agency, fiduciary or employment relationship among the Parties.\
\
**12.5. Survival:** All clauses which, by their nature are intended to survive, including without limitation Clauses 4 (*Intellectual Property Rights*), 6 (*Charges and Payment*), 7 (*Term*, *Suspension and Termination*), 8 (*Confidentiality, Data Privacy and Security*), 9 (*Disclaimer of Warranties*), 10 (*Limitation of Liability*), 11 (*Indemnification*), 12 (*Miscellaneous*) and 13 (*Definitions*) shall survive any termination of Our agreement with Yourself regarding the use of the Service(s). Termination shall not limit either Party’s liability for obligations accrued as of or prior to such termination or for any breach of These Terms.\
\
**12.6. Notices and Consent to Electronic Communications:** All notices from Us under these Terms may be delivered in writing\
‍\
(i) by nationally recognized overnight delivery service (“**Courier**”) or to the contact mailing address provided by You while subscribing to the Service(s); or\
\
(ii) electronic mail to the e-mail address provided to Your Account. Our address for a notice is: Distro Inc at 7 allee du long, 26500 Bourg-les-valence, France with a CC to <support@distro.so> by electronic mail. All notices shall be deemed to have been given immediately upon delivery by electronic mail, or if otherwise delivered upon receipt or, if earlier, two (2) business days after being deposited in the mail or with a Courier as permitted above.\
\
**12.7.** Publicity Rights: You hereby grant Us a royalty-free, worldwide, transferable license to use Your trademark or logo to identify You as Our customer on Our websites and/or marketing collateral and to include Your use of the Services in case studies.\
\
**12.8. Governing Law and Dispute Resolution:** These Terms shall be governed by the laws of the State of Delaware, USA  without regard to any conflict of laws principles. You hereby expressly agree to submit to the exclusive personal jurisdiction of the courts at Claymont, Delaware. Any dispute, claim or controversy arising out of or relating to these Terms or the breach, termination, enforcement, interpretation or validity thereof, including the determination of the scope or applicability of these Terms to arbitrate, shall be settled by arbitration administered by the American Arbitration Association in accordance with its commercial arbitration rules (“**AAA Rules**”), and judgement on the award rendered by the arbitrator may be entered in any court having jurisdiction thereof. The language of the arbitration shall be English. The dispute shall be resolved by a sole arbitrator who shall be appointed in accordance with the AAA Rules. The decision of the sole arbitrator shall be final and binding on the Parties.\
\
**12.9. Entire Agreement:** These Terms, together with any Order Forms, constitute the entire agreement, and supersede any and all prior agreements between Us and Yourself with regard to the subject matter hereof. In the event of a conflict between the terms of any Order Form and these Terms, the Terms shall prevail. In case of a conflict between two Order Forms, the Order Form later in date shall prevail.\
\
**12.10. Force Majeure:** Notwithstanding anything to the contrary contained elsewhere, We shall not be liable for unavailability of the Service(s) caused by circumstances beyond Our reasonable control, such as, but not limited to, acts of God, acts of government, acts of terror or civil unrest, technical failures beyond Our reasonable control (including, without limitation, inability to access the internet, unauthorized loss, distribution or dissemination of Customer Data), or acts undertaken by third parties, including without limitation, distributed denial of Service attacks.<br>

**13. DEFINITIONS**

When used in these Terms with the initial letters capitalized, in addition to terms defined elsewhere in these Terms, the following terms have the following meanings:\
\
‍**Account**: means any accounts or instances created by You or on Your behalf for access and use of the Services.\
\
‍**API**: means the application programming interfaces developed, enabled by or licensed to Us that permits access to certain functionality provided by the Service(s).\
\
‍**Confidential Information**: means all information disclosed by one Party to the other Party which is in tangible form and labelled “confidential” (or with a similar legend) or which a reasonable person would understand to be confidential given the nature of the information and circumstances of disclosure. For purposes of These Terms, Customer Data shall be deemed Confidential Information. Notwithstanding the foregoing, Confidential Information shall not include any information which\
\
(a) was publicly known and made generally available in the public domain prior to the time of disclosure by the disclosing party;\
\
(b) becomes publicly known and made generally available after disclosure by the disclosing party to the receiving party through no action or inaction of the receiving party;\
\
(c) is already in the possession of the receiving party at the time of disclosure by the disclosing party as shown by the receiving party’s files and records prior to the time of disclosure;\
\
(d) is obtained by the receiving party from a third party without a breach of such third party’s obligations of confidentiality;\
\
(e) is independently developed by the receiving party without use of or reference to the disclosing party’s Confidential Information, as shown by documents and other competent evidence in the receiving party’s possession; or\
\
(f) is required by law to be disclosed by the receiving party, provided that the receiving party shall, to the extent legally permitted, give the disclosing party written notice of such requirement prior to disclosing so that the disclosing party may seek a protective order or other appropriate relief.\
\
‍**Customer Data**: means all electronic data, text, messages, personal data or other materials, including without limitation Personal Data of Users and End Users, submitted to the Services by You through Your Account in connection with Your use of the Services.\
\
‍**Documentation**: means any written or electronic documentation, images, video, text or sounds specifying the functionalities of the Service(s) provided or made available by Us to You or Your Users through the Service(s) or otherwise.\
\
‍**End User:** means any person or entity other than You or Your Users with whom You interact using the Service(s).\
\
‍**Order Form**: means any service order form or statement of work specifying the Service(s) subscribed to, particular features and functionalities in the Service(s) that You wish to avail and the Subscription Term.\
\
‍**Personal Data**: means data relating to a living individual who is or can be identified either from the data or from the data in conjunction with other information that is in, or is likely to come into, the possession of the data controller.\
\
‍**Processing/To Process**: means any operation or set of operations which is performed upon Personal Data, whether or not by automatic means, such as collection, recording, organization, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, blocking, erasure or destruction.\
\
‍**Sensitive Personal Information:** means information that relates to an individual’s racial or ethnic origin, political opinions, religious or philosophical beliefs, trade union membership, genetic data, biometric data for the purpose of uniquely identifying a natural person, data concerning health, or data concerning a natural person’s sex life or sexual orientation.  It also includes information about an individual’s criminal offences or convictions, as well as any other information deemed sensitive under applicable data protection laws.\
\
‍**Service(s)**: means the cloud based proprietary tool found at [Distro](https://distro.so) which optimizes the functioning of an enterprise’s sales team and any new services that We may introduce as a Service to which You may subscribe to, and any updates, modifications or improvements thereto, including individually and collectively, the API and any Documentation.\
\
‍**Subscription Term:** means the period during which You have agreed to subscribe to the Service(s) specified in the Website or in a relevant Order Form\
\
**Third-party Service(s**): shall mean third-party application(s) or service(s) integrating with the Platform through APIs or otherwise enabled through the Platform which requires You to have Your own accounts with such third-party application(s) or service(s) in order to utilize them.\
‍**User**: means those who are designated users within the Service(s), including an Account administrator, agents and other designated users.\
\
‍**Website(s):** shall mean the websites owned and operated by Us including [Distro](https://distro.so).


# Privacy Policy

**Effective date: 1st June 2023**

**Last updated on: 30th October 2023**

This privacy policy (“**Policy**”) explains how Distro Inc or any of its affiliates or subsidiaries. (“**We**”, “**Us**”, “**Our**”) Processes Personal Data collected from You.

**1. DEFINITIONS**

**1.1. “Controller”** means the natural or legal person, public authority, agency, or other body which alone or jointly with others, determines the purposes and means of the processing of Personal Data.\
\
**1.2. “End-User”** means any person or entity with whom the Subscriber interacts using the Service(s).\
\
**1.3. “Personal Data”** means any information relating to an identified or identifiable natural person; an identifiable natural person is one who can be identified, directly or indirectly, in particular by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person.\
\
**1.4. “Process”** means any operation or set of operations which is performed on Personal Data or on sets of Personal Data, whether or not by automated means, such as collection, recording, organisation, structuring, storage, adaptation or alteration, retrieval, consultation, use, disclosure by transmission, dissemination or otherwise making available, alignment or combination, restriction, erasure or destruction.\
\
**1.5. “Processor”** means a natural or legal person, public authority, agency, or other body which Processes Personal Data on behalf of the Controller.\
\
**1.6. “Service(s)”** shall have the meaning ascribed to it in the Terms of Use.\
\
**1.7. “Subscriber”** means the natural or legal person that has subscribed to the Service(s) by agreeing to the Terms of Use.\
\
**1.8. “Terms of Use”** means the binding contract between Us and You which governs the access and use of the Service(s) by You available at [https://www.revenuehero.io/terms\
\
**‍**](https://www.revenuehero.io/terms)**1.9. “Website(s)”** means the websites that We operate.\
\
**1.10. “You”** and **“Your”** means an identified or identifiable natural person whose Personal Data We process as a Controlle&#x72;**.**

**2. PERSONAL DATA COLLECTED BY US**<br>

**2.1**. You directly provide Us with most of the data We collect. We collect Personal Data from You directly as follows:\
\
(a) When You subscribe for any of Our Service(s) by agreeing to the Terms of Use, We collect sign-up and account information including Your name and e-mail address;\
\
(b) When You submit web forms on Our Website(s) or as You use interactive features of the Website(s), including providing feedback or suggestions, making requests, or participation in surveys, contests, webinars, events, podcasts, promotions, sweepstakes, requesting customer support, or otherwise communicating with Us;\
\
(c) When You provide testimonials, forms or information to Us in other contexts; or\
\
(d) When You authorize Us to connect with a third-party service, We will access and store Your Personal Data that the third-party service makes available to Us, which may include  Your email address, location or profile information; or\
\
(e) When You apply for an employment opportunity with Us. \
\
**2.2.** We may also receive Your Personal Data indirectly as follows:\
\
(a) from third party sources like marketing lists, databases and social media but only where We have checked that these third parties either have Your consent or are otherwise legally permitted or required to disclose Your Personal Data to us;\
\
(b)When You download and/or use the Service(s), We automatically collect information on the type of device You use, and the operating system version, to perform Our agreement with You;\
\
(c) When You use or view Our Website(s), information is collected via Your browser’s cookies as described in clause 9 herein;\
\
(d) We may also collect or receive Your Personal Data from other sources such as Our business or channel partners through whom You create or access Your Account, publicly available sources, email add-ons and/ or through the combining of information We obtain from third parties along with the Personal Data You provide to Us without any breach of confidentiality obligations and in accordance with the applicable laws;\
\
&#x20;**2.3.** The Website(s) includes social media features and widgets that are either hosted by a third-party or hosted directly on the Website(s) and Your interaction with these social media features and widgets is governed by the privacy statement of the companies that provide them. You should check Your privacy settings on these third-party services to understand and change the information sent to Us through these services.

**3. PURPOSES FOR WHICH PERSONAL DATA WILL BE PROCESSED**<br>

We Process Your Personal Data to:\
\
(a) facilitate Your access to the Website(s) and Service(s);\
\
(b) process and complete payment transactions;\
\
(c) provide customer service and support;\
\
(d) send You communication on Your use of the Service(s), updates on Our Terms of Use or other policies;\
\
(e) send You communication on new features in the Service(s) or new service offerings;\
\
(f) conduct research, analysis and development activities (including but not limited to data analytics, surveys and/or profiling) to improve Our Service(s) and facilities in order to enhance Your relationship with Us or for Your benefit, or to improve any of Our Service(s) for Your benefit;\
\
(g) Organise events or for other marketing/ promotional activities;\
\
(h) investigate and prevent fraudulent transactions, unauthorized access to the Websites and Service(s), and other illegal activities;\
\
(i) personalize the Websites and Service(s);\
\
(j) evaluate You for the position You have applied for or that We may consider You at the time You have submitted Your resume or later date and for other purposes for which We obtain Your consent.

**4. SHARING OF PERSONAL DATA**

**4.1.** You acknowledge that We will share Your Personal Data with Our group companies and third-party service providers so that they may offer You Our Service(s) and/or to send information or updates on the Service(s) if You are a Subscriber.\
\
**4.2.** We may share Your Personal Data with an entity to which We divest all or a portion of Our business, or otherwise in connection with a merger, consolidation, change in control, reorganisation or liquidation of all or a portion of Our business.\
\
**4.3.** When We Process Your order where You are a Subscriber, we may send Your Personal Data to and also use the resulting information from credit reference agencies to prevent fraudulent purchases.\
\
**4.4.** We share Personal Data with Our third-party service providers that host and maintain the Our Website(s), applications, backup, storage, payment processing, analytics and other services. These third-party service providers may have access to or Process Your Personal Data for the purpose of providing these services to Us.\
\
**4.5.** We may share Your Personal Data with third-party providers who assist Us in marketing and promotions in compliance with applicable laws.\
\
**4.6.** We may be required to disclose Your Personal Data in response to:\
‍\
(a) lawful requests by public authorities, including to meet national security or law enforcement requirements and/or\
&#x20;   \
(b) subpoenas, court orders, or legal process, or to establish or exercise Our legal rights or defend against legal claims.\
\
**4.7.** We may also share Personal Data to assist investigation and prevention of illegal activities, suspected fraud, situations involving potential threats to the physical safety of any person, violations of Our Terms of Use, or as otherwise required by law. \
\
**4.8.** We may share Your Personal Data with professional advisors who advise and assist Us in enforcing Our contracts and policies, handling Our claims, effective management of Our company and in relation to any disputes We may become involved in.<br>

**5. LEGAL BASIS FOR PROCESSING (EEA REGION)**<br>

**5.1.** If You are a data subject from the European Economic Area, Our legal basis for collecting and using the Personal Data described above will depend on the Personal Data concerned and the specific context in which We collect it.\
\
**5.2.** We will normally collect Personal Data from You only where it is needed to perform a contract with You, where the Processing is in Our legitimate interests and not overridden by Your data protection interests or fundamental rights and freedoms, or where We have Your consent. In some cases, We may also have a legal obligation to collect Personal Data from You. If We Process Personal Data with reliance on Your consent, You may withdraw Your consent at any time.

**6. INTERNATIONAL TRANSFER**

**6.1**. We mainly Process Personal Data in the United States of America. However, We may transfer Personal Data outside the United States of America for the purposes referred to in Section 4. We will ensure that the recipient of Your Personal Data offers an adequate level of protection that is at least comparable to that which is provided under applicable data protection laws. \
\
**6.2.** If You are a resident of the European Economic Area and when Your Personal Data is Processed outside EEA, We will ensure that the recipient of Your Personal Data offers an adequate level of protection, for instance by entering into standard contractual clauses for the transfer of Personal Data as approved by the European Commission (Article 46 General Data Privacy Regulation, 2016), or We will ask You for Your prior consent to such international data transfers.

**7. RETENTION OF PERSONAL DATA**

**7.1**. We retain the Personal Data collected where an ongoing legitimate business requires retention of such Personal Data.\
\
**7.2.** In the absence of a need to retain Personal Data under Section 6.1. above, We will either delete it or aggregate it, or, if this is not possible then We will securely store Your Personal Data and isolate it from any further Processing until deletion is possible<br>

**8. SECURITY OF PERSONAL DATA**<br>

We use appropriate technical and organizational measures to protect the Personal Data that We collect and Process. The measures We use are designed to provide a level of security appropriate to the risk of Processing Your Personal Data. If You have questions about the security of Your Personal Data, please contact Us immediately as described in this Policy

**9. YOUR RIGHTS**

You are entitled to the following rights:\
\
You can request Us for access and correction of Your Personal Data.\
\
**9.1.** If We have collected and processed Your Personal Data with Your consent, then You can withdraw Your consent at any time. Withdrawing Your consent will not affect the lawfulness of any processing We have conducted prior to Your withdrawal, nor will it affect Processing of Your Personal Data conducted in reliance on lawful processing grounds other than consent.\
\
**9.2.** You have the right to complain to a data protection authority about Our collection and use of Your Personal Data. For more information, please contact Your local data protection authority as specified by the applicable data protection laws.\
‍\
**9.3**. You have the right to opt-out of marketing communications We send You at any time. You can exercise this right by clicking on the “unsubscribe” or “opt-out” link in the marketing e-mails We send You. To opt-out of other forms of marketing (such as postal marketing or telemarketing), please contact Us.\
\
**9.4.** If You are a resident of the EEA, UK, or Switzerland, You are also entitled to the following rights:\
\
**9.4.1.** You can request Us for deletion and erasure of Your Personal Data.\
&#x20;      \
**9.4.2.** You can object to the Processing of Your Personal Data, ask Us to restrict Processing of Your Personal Data or request portability of Your Personal Data.\
\
**9.5.** If You seek to exercise Your rights under this clause, please contact Us at the details provided in clause 12. We will verify any requests before acting on the request and respond to all requests We receive from individuals wishing to exercise their data protection rights within a reasonable timeframe in accordance with applicable data protection laws.\
‍

**10. COOKIE POLICY**

**10.1.** Cookies are text files that are placed on Your computer to collect standard internet log information and visitor behaviour information by Us. When You visit the Website(s), We may collect Personal Data automatically from You through cookies or similar technology. We also set cookies to collect information that is used either in aggregate form to help Us understand how our Website(s) are being used or how effective Our marketing campaigns are, to help customise the Website(s) for You or to make advertising messages more relevant to You. \
\
**10.2**. Essential Cookies: We set essential cookies that enable core functionality such as security, network management, and accessibility. You may not opt-out of these cookies. However, You may disable these by changing Your browser settings, but this may affect how the Website(s) functions.\
\
**10.3.** Analytics, Customisation and Advertising Cookies: We set these cookies to help Us improve Our Website(s) by collecting and reporting information on how You use it. The cookies collect information in a way that does not directly identify anyone. \
\
**10.4.** When You visit the Website(s), a cookie banner will be displayed providing additional information about cookies and options to opt out of non-essential cookies as required by applicable laws.

**11. PRIVACY OF CHILDREN**

**11.1**. We recognize the importance of children’s safety and privacy. We do not request, or knowingly collect, any Personal Data from children under the age of 18. If a parent or guardian becomes aware that his or her child has provided Us with Personal Data, they should write to us at the email address provided in clause 12.

**12. NOTICE TO END-USER AND OTHER EXCLUSIONS**

**12.1.** Our Service(s) are intended for use by enterprises. Where the Services are made available to an End-User through a Subscriber, that enterprise is the Controller of the End-User’s Personal Data. In such a case, the End-User’s data privacy questions and requests should be submitted to the Subscriber in its capacity as the End-User’s Controller. If the End-User is an individual who interacts with a Subscriber using Our Services, the End-User will be directed to contact Our Subscriber for assistance with any requests or questions relating to their Personal Data. We are not responsible for Subscribers’ privacy or security practices which may be different from this notice. Subscribers to Our Services are solely responsible for establishing policies for and ensuring compliance with all applicable laws and regulations, as well as any and all privacy policies, agreements, or other obligations, relating to the collection of Personal Data in connection with the use of Our Services by End-Users.\
\
**12.2.** Our Website(s) contain links to other websites. Our Policy applies only to our Website(s), so if You click on a link to another website, You should read their privacy policy. We encourage You to review the privacy statements of any such other websites to understand their Personal Data practices.<br>

**13. CONTACT INFORMATION**

You may contact us if You have any enquiries or feedback on Our personal data protection policies and procedures, or if You wish to make any request, in the following manner:\
\
**Kind Attention:** Support Desk\
\
**Email Address:** [support@d](mailto:support@distro.so)[istro.so](mailto:support@distro.so)\
\
**Address:** 7 allee du long, 26500 Bourg-les-valence, France

**14. CHANGES TO THE POLICY**

Please come back and check for any updates to this Policy. If there are any material changes to this Policy We shall notify You or shall post a notice of the update on Our Website.


# Distro compliance to Google API Services User Data Policy

{% hint style="info" %}
Distro use and transfer to any other app of information received from Google APIs will adhere to Google API Services User Data Policy, including the Limited Use requirements.

More details at: [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy)
{% endhint %}


# Changelog

New updates and improvements

{% updates format="full" %}
{% update date="2026-01-13" %}

## Release Notes

We're excited to announce a major update packed with new features, improved workflows, and enhanced analytics to help you route leads more effectively and streamline your scheduling operations.

***

### ✨ New Features

#### Workflows (Automation Engine)

Build powerful automations triggered by bookings and form submissions. Create custom workflows that:

* Send personalized emails to prospects and team members
* Post notifications to Slack channels
* Trigger webhooks to integrate with external systems
* Use dynamic placeholders for personalized messaging

#### Group Meeting Bookings

Group meeting links now fully support booking management:

* View all group meeting bookings in a dedicated filter
* Track bookings from group links alongside personal and click router bookings
* Improved booking list with source indicators

#### Click Router Insights Dashboard

Get deeper visibility into your click router performance with a new dedicated analytics view:

* **Routing Funnel**: Visualize the journey from form submissions to booked meetings
* **Booking Insights**: Track conversion rates and booking trends over time
* **Team Performance**: See how leads are distributed across your team
* **Custom Filters**: Filter by date range, team members, and more

#### Admin Credit Management

Admins can now manually adjust team member credits for round-robin routing:

* Add or remove credits directly from the assignments view
* Useful for compensating holidays, sick days, or manual adjustments
* Available for both lead routers and click routers

#### Round-Robin Queue Reset

New calibration settings allow admins to reset the round-robin queue:

* Start fresh with equal distribution across all team members
* Compensate for holidays and time off
* Shadow tracking for fair distribution auditing

***

### 🔧 Improvements

#### Router Edit Experience

The router configuration page has been completely redesigned:

* **Visual Flow Design**: Connected sections with arrows show the routing logic clearly
* **Collapsible Sections**: Easier navigation through form connection, lead routing, event configuration, redirect settings, and CRM integration
* **Slideover Panels**: Edit detailed settings without leaving the main view
* **Better Organization**: Cleaner interface that's easier to navigate

#### Event Type Editor

Improved event type editing experience:

* Single-page edit view with all settings accessible in one place
* Navigation guard warns before leaving with unsaved changes
* Inline editing for custom form titles
* Better form validation and error handling

#### HubSpot Integration Enhancements

* **User Lookup Fields**: Rules now properly display HubSpot team member options with names and emails
* **Owner Sync**: Automatically fetch and cache HubSpot owners for faster rule configuration
* **Better Field Detection**: Improved detection of user lookup field types

#### Custom No-Availability Email

Configure a custom contact email address that displays when no time slots are available:

* Set a team or support email instead of showing individual user emails
* Maintains professional branding when prospects can't find available times
* Configurable in Scheduler Settings

#### Booking Insights

Enhanced booking analytics across all link types:

* Improved charts and data visualization
* Better date range filtering
* Clearer metrics and conversion tracking

***

### Getting Started

All features are available immediately in your account. To explore:

1. **Workflows**: Navigate to Automations → Workflows to create your first automation
2. **Click Router Insights**: Open any click router and select "Insights" from the sidebar
3. **Credit Management**: Go to any router's assignments section and click the credit adjustment icon
4. **Custom Email**: Visit Settings → Scheduler to configure your no-availability email

Questions or feedback? Reach out to our support team – we'd love to hear from you!
{% endupdate %}
{% endupdates %}


