# How to install the RevenueHero script?
Source: https://help.revenuehero.io/Inbound-router-installation
All the ways you can invoke the RevenueHero scheduler on your website, from standard form listeners to programmatic triggers like hero.submit() and hero.dialog.open().
The standard way to invoke RevenueHero is `hero.schedule('#form-id')`, which listens for your form's submit event and opens the scheduler automatically. But that doesn't always fit. Maybe you're running server-side validation before showing the calendar. Maybe your form lives inside an iframe. Maybe you're building in React and there's no traditional form submit event to listen to.
This article covers every way to invoke the RevenueHero scheduler on your website. For the step-by-step router setup that generates your script snippet, see [Create Inbound Router](/routers/inbound/create-inbound-router#install-the-script).
**BEFORE YOU BEGIN**
1. [Create an Inbound Router](/routers/inbound/create-inbound-router) and note your **Router ID**
2. Add the RevenueHero source script to the `` of your page:
```html theme={null}
```
## Methods
The RevenueHero script exposes three methods. The first, `hero.schedule()`, is the standard method documented in every [web forms integration guide](/web-forms/custom). The other two, `hero.submit()` and `hero.dialog.open()`, give you programmatic control over the entire flow.
### hero.schedule(formSelector)
Binds to a form's native submit event. When the form is submitted, RevenueHero intercepts the data, runs routing rules, and opens the scheduler automatically.
```javascript theme={null}
const hero = new RevenueHero({ routerId: 'xxx' });
hero.schedule('#demo-form'); // CSS selector for your form element
```
**When to use:** Your form uses a standard HTML submit and you don't need to intercept the submission before the scheduler appears.
**Limitation:** If you call `e.preventDefault()` on the form's submit event before RevenueHero can listen to it, `hero.schedule()` will never fire. Use `hero.submit()` instead.
### hero.submit(formData)
Sends form field data directly to RevenueHero for routing and qualification. Returns a Promise that resolves with session data you can use to open the scheduler.
```javascript theme={null}
const hero = new RevenueHero({ routerId: 'xxx' });
hero.submit({
email: 'jane@acme.com',
firstname: 'Jane',
lastname: 'Doe',
company: 'Acme Inc'
}).then(function(sessionData) {
hero.dialog.open(sessionData);
});
```
**When to use:** You need to control what happens between form submission and the scheduler appearing. Custom validation, async API calls, multi-step forms, SPA frameworks, or any flow where `hero.schedule()` doesn't work.
**Pass a plain object, not a FormData instance.** If you're collecting data from a form element, convert it first:
```javascript theme={null}
const formElement = document.getElementById('demo-form');
const formData = Object.fromEntries(new FormData(formElement).entries());
hero.submit(formData); // plain object like { email: '...', name: '...' }
```
Passing a raw `FormData` object will silently fail.
### hero.dialog.open(sessionData)
Opens the scheduler popup programmatically. Takes the session data returned from `hero.submit()`.
```javascript theme={null}
hero.submit(formData).then(function(sessionData) {
hero.dialog.open(sessionData);
});
```
**When to use:** Always used together with `hero.submit()`. This is what actually makes the calendar visible to your prospect.
## Constructor options
The `RevenueHero` constructor accepts a configuration object:
| Parameter | Type | Required | Description |
| ------------ | ------- | -------- | --------------------------------------------------------- |
| `routerId` | string | Yes | Your Router ID from the Inbound Router setup |
| `formType` | string | No | Set to `'pardot'` or `'jotform'` for those form providers |
| `showLoader` | boolean | No | Shows a loading spinner while routing rules are evaluated |
```javascript theme={null}
const hero = new RevenueHero({
routerId: 'xxx',
showLoader: true
});
```
Your Router ID is displayed in the **Widget Installation** step when you [create or edit an Inbound Router](/routers/inbound/create-inbound-router#install-the-script).
## Custom validation before scheduling
The most common reason to use `hero.submit()` is when you need to validate form data before showing the scheduler. Run your validation, and only trigger RevenueHero if it passes.
```html theme={null}
```
This pattern is useful for running checks like email validation services, domain blocklists, or CRM lookups before consuming a RevenueHero routing. If the check fails, the prospect never sees the scheduler and no routing log entry is created.
## Webflow forms (AJAX intercept)
Webflow forms submit via AJAX by default. If the standard `hero.schedule()` doesn't trigger the scheduler on your Webflow site, use this jQuery-based intercept pattern:
```html theme={null}
```
Replace `#wf-form-Email-Form` with your Webflow form's CSS ID and `'xxx'` with your Router ID.
This script must be placed in the **Before `` tag** section in Webflow, not the ``. The form element needs to exist in the DOM before the script runs.
For the standard Webflow installation that works without this intercept, see [Webflow Forms](/web-forms/webflow).
## React and Next.js
In single-page applications, the RevenueHero script needs to load dynamically since there's no traditional page load.
### React
```jsx theme={null}
import { useEffect, useRef } from 'react';
function DemoForm() {
const formRef = useRef(null);
useEffect(() => {
const script = document.createElement('script');
script.src = 'https://assets.revenuehero.io/scheduler.min.js';
script.onload = () => {
// Script loaded, RevenueHero is now available on window.RevenueHero
};
document.head.appendChild(script);
return () => {
document.head.removeChild(script);
};
}, []);
const handleSubmit = async (e) => {
e.preventDefault();
const data = Object.fromEntries(new FormData(formRef.current).entries());
const hero = new window.RevenueHero({ routerId: 'xxx', showLoader: true });
const sessionData = await hero.submit(data);
hero.dialog.open(sessionData);
};
return (
);
}
```
### Next.js
Use the Next.js `Script` component to load the RevenueHero script:
```jsx theme={null}
import Script from 'next/script';
export default function DemoPage() {
const handleSubmit = async (e) => {
e.preventDefault();
const data = Object.fromEntries(new FormData(e.target).entries());
const hero = new window.RevenueHero({ routerId: 'xxx', showLoader: true });
const sessionData = await hero.submit(data);
hero.dialog.open(sessionData);
};
return (
<>
>
);
}
```
### Gatsby
Gatsby uses the `
```
3. Set the trigger to **DOM Ready** on the pages where your form exists
4. Publish the container
Do **not** use the "All Pages" trigger with a Page View firing option. The script needs the form element to be present in the DOM when it executes. Use **DOM Ready** or **Window Loaded** as the trigger.
### Tracking conversions with GTM
Use RevenueHero's [JavaScript Events](/integrations/javascript-events) to push conversion data into the GTM data layer:
```html theme={null}
```
The `PAGE_LOADED` event is particularly useful for Google Ads conversion tracking. It fires when the scheduler with booking slots is displayed, which means the lead passed your routing qualification. Use this as a "Qualified Lead" conversion action.
## Global script across multiple pages
If you use the same form structure across many pages (e.g., the same HubSpot form on 400+ landing pages), you can install one script at the template level.
Add the RevenueHero script to your site's global template or theme footer. The script will look for the specified form selector on every page. If the form isn't present on a particular page, the script does nothing.
```html theme={null}
```
If you have multiple forms mapped to different routers, use a single `scheduler.min.js` include in the `` and separate `hero.schedule()` calls in the `` of each page.
## Re-trigger the scheduler (booking incomplete page)
If a prospect fills your form but doesn't book a meeting, you can create a "Booking Incomplete" page that lets them try again. Store the form data in `localStorage` after the initial submission, then use `hero.submit()` on the retry page.
### On your original form page
```javascript theme={null}
form.addEventListener('submit', function(e) {
// Save the form data for the retry page
var data = Object.fromEntries(new FormData(form).entries());
localStorage.setItem('rhdata', JSON.stringify(data));
localStorage.setItem('rhid', 'xxx'); // your Router ID
});
```
### On the "booking incomplete" page
```html theme={null}
```
## Troubleshooting
### Scheduler doesn't appear after form submit
**Check the form selector.** The CSS selector passed to `hero.schedule()` must match your form element exactly. Open your browser's developer console and run `document.querySelector('#your-form-id')` to verify the form element exists.
**Check for `e.preventDefault()`.** If your JavaScript calls `e.preventDefault()` on the form's submit event before RevenueHero's listener fires, the scheduler won't trigger. Switch to `hero.submit()` + `hero.dialog.open()`.
**Check the browser console.** Look for errors from `scheduler.min.js`. A 500 error from the RevenueHero API usually means a field mapping mismatch. Verify that the field names in your form match the mappings in your Inbound Router.
### Script not loading
**Don't defer the script.** Adding `defer` or `async` attributes to the `scheduler.min.js` script tag can cause it to load after your form's submit handler runs. Load it synchronously in the `` section.
```html theme={null}
```
**WordPress / WP Rocket users:** WP Rocket and similar optimization plugins may automatically defer or lazy-load third-party scripts. Exclude `scheduler.min.js` from defer, delay, and minification settings.
### Form inside an iframe
If your form renders inside an iframe (common with Pardot embedded forms), the parent page's RevenueHero script cannot access the form's submit event due to cross-origin restrictions.
**Solutions:**
1. Use the [Pardot integration](/web-forms/pardot) which handles this natively with `formType: 'pardot'`
2. Add the RevenueHero script inside the iframe's HTML (in the form's "Below Form" or "Thank You" content area)
3. If neither works, contact support. The team can build a custom script for your form handler setup.
### PHP or CMS wrapping the script in HTML tags
Some CMS platforms (WordPress visual editors, PHP templates) may wrap your `
```
[Click here to understand more on installing the router script on your page](/routers/inbound/create-inbound-router#install-the-script)
3. You're all set!
# List of supported languages
| Language | Shortcode |
| :----------------- | :-------: |
| Arabic | ar |
| Czech | cs |
| Danish | da |
| German | de |
| Greek | el |
| English British | en-GB |
| English - US | en-US |
| Spanish - LATAM | es-419 |
| Spanish | es-ES |
| Finnish | fi |
| French | fr |
| French - Canada | fr-CA |
| Hebrew | he |
| Hungarian | hu |
| Indonesian | id |
| Italian | it |
| Japanese | ja |
| Korean | ko |
| Dutch | nl |
| Norwegian | no |
| Polish | pl |
| Portuguese(Brazil) | pt-BR |
| Portuguese | pt-PT |
| Romanian | ro |
| Russian | ru |
| Swedish | sv-SE |
| Thai | tr |
| Vietnamese | vi |
| Chinese(Simple) | zh-CN |
| Chinese(Hong Kong) | zh-HK |
| Chinese(Taiwan) | zh-TW |
# Overview of Routers in RevenueHero
Source: https://help.revenuehero.io/routers/overview
Routers in RevenueHero determine the experience that your contacts have when they submit a form on your website.
A router brings together your form, your distribution rules, and your matching rules to allow your contacts to instantly book a meeting with your sales team.
There are three types of routers you can create.
Create a router to qualify and route meetings that come in via a form submission.
Configure how leads should be routed when a meeting is booked through one of your marketing campaigns.
Book meetings on behalf of another rep and handoff meetings from one team to another.
### Comparison of Inbound, Campaign, and Relay Routers
Use this table to understand when to use each router based on your use case, how they handle forms, routing, and qualification.
| Router | When to Use and How it Works | Form Approach | Routing & Qualification |
| :------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Inbound | Used when you're capturing leads from website forms and need to qualify and route them instantly. It connects to any form, enriches data if required, qualifies based on your rules (like job title or company size), and routes to the right rep | **Form-first** - Prospect fills the form first. RevenueHero latches onto the form, enriches if required and routes after submission. | Performs qualification and enrichment based on form input and enrichment source if added. Routes using ownership and distribution rules. |
| Campaign | Used when you're running outbound campaigns or email sequences and want to offer a 1-click booking experience. If data is pre-filled in the URL, it skips the form and routes based on ownership or round robin. If not, it does a simple round robin and shows a form after slot selection to collect information. | **Calendar-first** - prospect picks a slot first. Form is shown after slot selection, or skipped entirely if data is already prefilled in the URL. | No qualification or enrichment. Routes are based on pre-filled URL data, either to the owner or using round robin. |
| Relay | Used to book meetings on behalf of someone else (like SDR β AE handoff). Ideal for internal handoffs or CS flows. Captures info via a RevenueHero form and routes based on that input or CRM data. | **Form-first** - shows a form to capture prospect details before slot selection. | Does not qualify or enrich. Routes based on form or CRM data. Routes using ownership rules and distribution pods, and has a fallback pod. |
# How to book a Relay meeting with a prospect from within any sales tool?
Source: https://help.revenuehero.io/routers/relays/book-relay-meetings/within-any-tool
You can handoff meetings to the right rep in 2 clicks under 5 seconds. This article covers how you can do that.
BDRs can book a meeting with the prospect for the right Account Executives without even logging into RevenueHero.
In this article we'll look at how to book meetings right from within any of the sales tool you're using.
**BEFORE WE BEGIN**
There are a couple of pre-requisites to create your first Relay:
1. [Set up Relays](/routers/relays/create-relays)
2. [Download the Chrome extension](/integrations/chrome-extension)
## Book Meetings from your sales engagement tools or any screen on your browser
With RevenueHero you can book and manage meetings from wherever you are. Be it your sales tools like Outreach and Salesloft or literally any other screen on your browser.
1. Click the RevenueHero extension icon. You will see a pop-up that contains a brief overview of all your meetings, links, and availabilities. Under the "**My Links**" tab, you can find all your existing relay links as well.
2. To relay a meeting when you are in another tool or screen in your browser, click the β**Meeting**β tab. You will notice a small calendar icon at the bottom. Click the calendar icon.
3. The β**Relay a meeting**β screen will show up. Here you can add in all the details about the meeting you want to relay. This includes choosing the prospectβs name, email, and time zone. Along with this, youβll need to choose who to assign the meeting to. You can choose between β**Assign to me**β or β**Relay to a colleague**β. Next up, choose the Relay setting you want to use. Going with our example, remember we named our Relay β**US West Handoff**β. You can choose that Relay from the drop-down.
4. Click β**Proceed to book**β.
5. Here you will be able to see the meeting type, the AE who has been assigned, and their calendar availability. You can also choose to add team members and invite external guests.
6. Next, you will be required to pick the time slots from the ones available in the AEs calendar. You can move your cursor and choose one for the desired date.
7. There are 2 ways you can proceed from here.
* You can click on β**Share Availability**β which generates a booking link that you can share with your prospect via email for them to confirm and book the meeting directly.
* Or you can click β**Proceed to Book**β which shows you the meeting summary including all the participants, date, time, and duration. It also gives you a meeting invite email template that you can use as is or edit as required for that extra personal touch.
8. Once you review all the details, click β**Create Meeting**β and the meeting is booked. It will automatically get added to all the participantsβ calendars and they will also receive the meeting invite email.
***
# How to book a Relay meeting with a prospect from within your CRM?
Source: https://help.revenuehero.io/routers/relays/book-relay-meetings/within-crm
You can handoff meetings to the right rep in 2 clicks under 5 seconds. This article covers how you can do that.
BDRs can book a meeting with the prospect for the right Account Executives without even logging into RevenueHero.
In this article we'll look at how to book meetings from within your CRM tool.
**BEFORE WE BEGIN**
There are a couple of pre-requisites to create your first Relay:
1. [Set up Relays](/routers/relays/create-relays)
2. [Download the Chrome extension](/integrations/chrome-extension)
## Book Meetings from your CRM
1. In your CRM dashboard, youβll find a β**New Meeting**β button right next to the RevenueHero logo. (weβve shown Salesforce for example here, but the same applies to HubSpot and Zoho CRM as well)
2. Click on the β**New Meeting**β button.
3. The β**Relay a meeting**β window will pop-up on your screen. Enter all the relay details here including the prospectβs name, email, and time zone. Along with this, youβll need to choose who to assign the meeting to. You can choose between **Assign to me** or .**Relay to a colleague**.
4. Next up, choose the Relay setting you want to use. Going with our example, remember we named our Relay β**US West Handoff**β. You can choose that Relay from the drop-down.
5. Here you will be able to see the meeting type, the AE who has been assigned, and their calendar availability. You can also choose to add team members and invite external guests.
6. Next, you will be required to pick the time slots from the ones available in the AEs calendar. You can move your cursor and choose one for the desired date.
7. You have 2 ways to proceed from here.
* You can click on β**Share Availability**β which generates a booking link that you can share with your prospect via email for them to confirm and book the meeting directly.
* Or you can click β**Proceed to Book**β which shows you the meeting summary including all the participants, date, time, and duration. It also gives you a meeting invite email template that you can use as is or edit as required for that extra personal touch.
8. Once you review all the details, click β**Create Meeting**β and the meeting is booked. It will automatically get added to all the participantsβ calendars and they will also receive the meeting invite email.
9. All the details get automatically updated in your CRM and youβre good to go.
***
# How to book a Relay meeting with a prospect from within your Inbox?
Source: https://help.revenuehero.io/routers/relays/book-relay-meetings/within-inbox
You can handoff meetings to the right rep in 2 clicks under 5 seconds. This article covers how you can do that.
BDRs can book a meeting with the prospect for the right Account Executives without even logging into RevenueHero.
In this article we'll look at how to book meetings from within your inbox.
**BEFORE WE BEGIN**
There are a couple of pre-requisites to create your first Relay:
1. [Set up Relays](/routers/relays/create-relays)
2. [Download the Chrome extension](/integrations/chrome-extension)
## Book Meetings from your inbox
You can relay a meeting from your inbox and share your AEs availability inline using RevenueHeroβs Magic Slots.
1. Type RH/ in your email body to generate the Magic Slots.
2. Under the links tab, choose the meeting link you want to use.
3. Youβll then be required to configure the relay settings. This includes choosing the prospectβs name, email, and time zone. Along with this, youβll need to choose who to assign the meeting to. You can choose between β**Assign to me**β or β**Relay to a colleague**β.
4. Next up, choose the Relay setting you want to use. Going with our example, remember we named our Relay β**US West Handoff**β. You can choose that Relay from the drop-down.
5. Click β**Suggest time slots**β.
6. Over here, you will be required to select the meeting type, add team members, and invite external guests. You will also have to pick the time slots from the ones available in the AEs calendar.
7. Once done, youβll have 2 ways you can proceed from here.
* You can click on β**Share Availability**β which generates a booking link that you can share with your prospect via email for them to confirm and book the meeting directly.
* Or you can click on β**Insert Slots**β to directly embed the available slots in your email body. This embeds the available calendar slot of the AE you relayed the meeting to, within the email body. So your prospect can choose and book a meeting directly and skip the back-and-forth emails.
This embeds the available calendar slot of the AE you relayed the meeting to, within the email body. So your prospect can choose and book a meeting directly, thereby skipping the back-and-forth emails.
***
# How to create Relays?
Source: https://help.revenuehero.io/routers/relays/create-relays
Creating a Relay is simple and easy. It's just six steps, and this article walks you through each step in detail.
Relays in RevenueHero help BDRs automate the meeting scheduling and routing process between your prospects and AEs and compresses the entire process to a few clicks.
With Relays, BDRs get instant visibility into AE availabilities, making it easier to book meetings with the right AE for the prospect.
Relays also automatically routes the meeting to the right AE who is next in queue, so that BDRs do not have to wrangle around with spreadsheets to figure whom to assign the meeting to. All the data is automatically synced with your CRM and reminders are sent out automatically to increase meeting show rates, making Relays your BDRs' sidekick.
**BEFORE WE BEGIN**
There are a couple of pre-requisites to create your first Relay:
1. [Create a Meeting Type](/type/create-meeting-type)
2. [Create a Team to distribute leads and meetings](/teams/create-teams)
## Steps to create a Relay
### Navigate to Relays
1. To create a Relay, use the side nav bar and click on **Relays β Routers**.
2. Once you are inside the Relays page, click on the Create New Relay button.
Click β**Start**β to create a new Relay.
Now, the first step in creating your Relay is to select the bookers/reps who will handoff meetings in this relay.
***
### Select bookers
This is the first step in setting up the workflow. Choose the team that will handoff meetings in this Relay i.e the team that is booking the meeting. You can further decide if you want to select the entire team or just a few specific members.
***
### Prospect Form
Adding a prospect form to your relay allows for your bookers to collect information that can be used to create conditional routing to assign meetings to the right reps. The same form is also displayed to prospects to fill out information when they book a meeting through a relay link.
In this step, you can choose to pick the default form, with just name and email fields, if there is no conditional routing based on booker/prospect input. You can also create a [**new form**](/routers/forms/custom-forms#create-a-form) to add additonal questions.
***
### CRM Settings
Once you've picked the form, you'll be prompted to set up contact creation/updation in the CRM.
1. Update contacts, if the prospect exists as a contact already.
2. Create contacts, if the prospect doesn't exist as a contact already.
#### Update Booker in the CRM
To help track meeting booking/attribution, you can setup RevenueHero to update a specific field in your CRM.
The field has to be a [Hubspot User field](https://knowledge.hubspot.com/properties/property-field-types-in-hubspot) or a Lookup-User field in Salesforce for RevenueHero to update the booker.
***
### Set up matching rules
Matching rules help in routing leads and their meetings to existing owners in the CRM. This ensures your leads talk to the same sales rep and removes the chances of any confusion.
Alternatively, you can choose to skip ownership matching and click on **Skip this step**.
By default there are matching rules to check for ownership on a lead (only in SFDC), contact or company/account level.
We recommend excluding the booker team from the ownership matching rules to ensure that the booker is not shown their own calendar in case they own the record in the CRM.
Click β**Next**β to proceed
***
### Set up distribution pods
Distribution pods decide the rep you want to handoff meetings to. You can choose to route meetings amongst the team members selected within the Distribution Pod based on conditions set.
If youβve already created a Distribution Pod, you can select the pod youβd like by clicking on β**Select Distribution Pods**β. You can use the search functionality to look for a specific pod that youβd like to add to this Relay.
!\[distribute]\(/images/relays/create a relay/new\_6.png)
However, if you havenβt created a Distribution Pod, click on the β**New Distribution Pod**β button to create a new pod.
**Hereβs a quick walkthrough on how to create a new Distribution Pod:**
1. Once youβve clicked the β**New Distribution Pod**β button, youβll see a pane open up from the right. Choose if you want to round robin with one team (eg: AE) or collectively round robin among a few teams(eg: AE + SE).
2. Choose members that will make up this pod by selecting the **Team** from the dropdown menu.
3. Next, you have to choose which team members should be considered for a strict round-robin. It can either be **all Team Members or select Team Members**.
4. You can also assign weightage for each member over here.
5. The next step is to **Add Conditions**, which if valid, will assign meetings to the members. (This is an optional step.)
6. Click on the β**Add a condition**β button and click on β**Add a Property**β. This is where you tell RevenueHero which property in your CRM to look up for this distribution pod.
7. Route meetings to the reps in the queue by setting conditions in the pod. Choose between
**Form inputs** - which if not present in the CRM already, must be entered by the booker while booking.
**CRM Fields** - route based on information already present in the CRM.
8. You can add multiple conditions with a combination of AND or OR for the Distribution Rule to check before meetings are assigned.
9. Lastly, you have the Pod Settings. This is where you can name your Distribution Pod. For example, since youβve created a Distribution Pod for your US West Coast AE team, you can name it US West AE.
10. You have the option to choose if you want to update the account owner. Once youβre done, click βSaveβ.
11. Youβll also be required to select a β**Fallback Distribution Pod**β, in the event the existing pod selected does not match. This means if there is no team member from the existing pod who is available in the slots you are looking for or does not fulfill your set logic, you need to have a fallback distribution pod to whom the meeting can be assigned.
12. Click β**Select Distribution Pod**β to choose your Fallback distribution pod.
13. And click β**Next**β.
***
### Round Robin Method
In this step, you can determine the round robin method that will be applied to the relay. There are two options to choose from:
1. **Strict Round Robin** : Fully equal distribution based on lead volumes. Booker will see the calendar of the first person in the queue.
2. **Flexible Round Robin** : More time slots for bookers/prospects to choose from. Booker will see combined availabilty of everyone in the queue.
3. **Balanced Round Robin:** Ensures fair distribution while giving more booking options. Booker will see the combined calculated availability of everyone in the queue while maintaining the balance.
You can also choose to have different round robin methods that is applied for the relay's links.
If you've chosen **Strict Round Robin** for the relay, the booker will see the calendar of the rep who is first in the queue.
***
### Configure Settings
Here are the setting youβll need to configure:
1. **Select Meeting Type**
Use the β**What kind of meeting should this router assign?**β field to select the meeting type for this router.
2. **Meeting Organizer**
Select if you want the booker or the assignee to be the meeting organizer. In the event you choose assignee, you also get to decide if you want the booker to be a part of the meeting or not.
3. **Override Round Robin**
This option is only applicable if the Relay is set to Strict Round Robin.
**Yes,Allow booker to override round robin suggestion** will allow bookers to flip between the reps in the queue while **No, go with round robin suggestion** will force the booker to go ahead with the first in queue.
4. **Override Exisiting Meetings**
Choose if you want to let the booker override round robin and select assignees manually or not.
5. **Name your Relay**
Use the β**What would you like to call this relay?**β field to give your router a name. Weβll name our relay as **SDR - AE Handoff**.
Thatβs it! Now, all you have to do is click the β**Create Relay**β button.
***
Thatβs it! Youβve now set up Relays. πππ
# How does Balanced Round Robin work?
Source: https://help.revenuehero.io/rules/distribution/balanced-round-robin
Route the next meeting to the rep carrying the lightest current workload, so no one gets buried while others sit idle, instead of cycling reps in a fixed order.
Most round robins assign the next meeting to the next rep in line, whether or not that rep already had a heavy week. Balanced Round Robin changes the input it looks at. Instead of position in a fixed cycle, it looks at how many meetings each rep currently holds and steers the next booking toward whoever is carrying the lightest load. Teams moving off other routers usually pick it for one reason: it keeps distribution fair without anyone watching a spreadsheet.
**BEFORE YOU BEGIN**
Round Robin is an account-wide setting. The algorithm you pick here applies to every distribution rule and relay pod tied to your organization.
1. [Create a Team to distribute meetings across](/teams/create-teams)
2. [Set up a Distribution Rule](/rules/distribution/create-distribution-rule)
## How Balanced Round Robin works
Every rep in a Round Robin queue carries an internally calculated **Level**, a score for where they stand relative to everyone else in the cycle. Balanced Round Robin reads that Level before each assignment and routes the meeting to the rep who is furthest behind. When a rep pulls ahead, Balanced temporarily holds them out of the queue until the rest of the team catches up, keeping the gap between the busiest and quietest rep small.
This is the one thing that separates Balanced from Strict and Flexible: it assigns by **current workload** rather than a fixed cycle order or the first available slot. The result is even distribution by real workload, without anyone managing the queue by hand.
## Choose Balanced Round Robin
### Step 1: Open Distribution settings
1. In the left sidebar, click **Settings β Distribution**.
2. On the **Round Robin settings for meeting distribution** card, click **Change**.
### Step 2: Select Balanced Round Robin
The Round Robin picker shows all three algorithms side by side with a short diagram of how each assigns meetings. Pick **Balanced Round Robin** from the **Select distribution method** dropdown, then click **Save**.
Switching the algorithm takes effect immediately for every distribution rule and relay pod in your account. If you want to try Balanced Round Robin on one team first, change it during a low-volume window and watch your [Round Robin History](/rules/distribution/round-robin-history) before peak hours.
## How Balanced Round Robin reads weightage
Balanced Round Robin still respects the weightage you set on a distribution rule. Weightage is the ratio of meetings a rep should receive relative to the rest of the team. A senior rep set to a higher weightage takes proportionally more meetings, and Balanced Round Robin balances the queue around that target rather than around a flat split. This is how teams run a deliberate 3:1 or 5:1 distribution while still keeping the load balanced around that ratio.
You set per-member weightage when you build the distribution rule. See [Create a Distribution Rule](/rules/distribution/create-distribution-rule).
## When a rep stops getting meetings
If one rep goes quiet for a stretch while everyone else keeps booking, the usual cause is a credit adjustment that pushed their Level out of balance, not a bug. A single manual credit, or a run of cancellations, can move a rep far enough down the queue that they wait a long time for the next meeting.
You can correct this from [Round Robin History](/rules/distribution/round-robin-history): hover next to the rep's **Level**, then add or remove credits to nudge them back into rotation. Adding a credit puts the rep in a deficit so they get meetings sooner; removing a credit does the opposite.
Check Round Robin History before assuming distribution is broken. The **Level**, **Meeting Assigned**, **Cancelled or No-show**, and vacation indicators show exactly why each rep is where they are in the queue.
## Balanced vs Strict vs Flexible
| Algorithm | How it assigns | Optimized for |
| -------------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
| Strict Round Robin | Picks a rep from the team first, then shows only that rep's slots | Fully equal distribution based on lead volume |
| Flexible Round Robin | Shows the team's combined availability; whoever is free takes the slot, and ties go to the rep with fewer meetings | More slots for the prospect, near-equal distribution based on availability |
| Balanced Round Robin | Shows combined availability, then auto-balances toward the lightest-loaded rep | Even distribution by current workload, reducing skew across reps |
For a full breakdown of when to choose each, see [Round Robin methods](/rules/distribution/round-robin-methods).
***
Balanced Round Robin is set. Your meetings now distribute by real workload, so no rep gets buried while others sit idle. πππ
Compare Strict, Flexible, and Balanced and pick the right one.
See where every rep stands and credit meetings back manually.
Build the routing logic and set per-member weightage.
Control how vacations, no-shows, and reassignments affect the queue.
# How to create a new Distribution Rule?
Source: https://help.revenuehero.io/rules/distribution/create-distribution-rule
Route meetings to new owners for lead or contact via Round Robin with Distribution rules
Distribution rules help assign a new owner to an incoming lead and their meeting. You can route based on a round-robin or your custom logic. You can keep it as simple or complex as you'd like and distribute it across all or specific members of a team.
Once created, Distribution rules can be used to route meetings that come through your Inbound or Campaign router.
## Steps to create a Distribution Rule
**BEFORE WE BEGIN**
There are a couple of pre-requisites to create your first Inbound Router:
1. [Integrate one of your CRM tools](/settings/organization/integrations#crm-integrations)
2. [Create a Team to distribute leads and meetings](/teams/create-teams)
### Navigate to Distribution Rules
1. To create a Distribution Rule, use the side nav bar and click on **Inbound β Distribution Rules.**
2. Now, click the β**Create New Rule**β button on the top-right corner of your screen.
3. The pop-up for Distribution Rule Setup requires you to first choose ββwho should the meetings be assigned to.
4. Click on βAssign to Single Memberβ in the pop-up for Distribution Rule Setup.
Which means the meeting gets assigned to a single member who is available at the chosen time, from a single Round Robin group.
If you'd like to assign the meeting to members from two different teams, click here for [steps to set-up Group Round Robin.](/rules/distribution/group-round-robin)
5. Now, you need to decide how you want meetings to be distributed for this particular rule.
6. In the drop-down choose the Team from which a single member will be assigned the meeting based on a flexible round-robin.
7. Next, choose the team members who should be considered for round-robin. It can either be all team members or select team members.
8. When you choose to distribute meetings βTo all membersβ, you can create and build your own logic for how the meetings should be distributed between team members.
When you choose to distribute meetings only βTo selected membersβ, you can add specific members instead of the entire team and create your own distribution logic.
9. Once selected, you can adjust the meeting weightage for each team member.
10. Click βContinueβ.
#### Set Conditions to Check
This is where you tell RevenueHero which input to look up to set this condition - a form field, a CRM field or RevenueHero enrichment.
You can add multiple conditions with a combination of AND or OR for the Distribution Rule to check before meetings are assigned.
Click β**Continue**β.
#### Understanding Meeting Settings
There are a couple of settings that you can tweak and change in your distribution rule.
**Rule name**
Give your Distribution Rule a name.
For example, if youβre creating a Distribution Rule for your USA sales team, you can name it US sales.
**Update account owner**
You can choose to update the account owner in your CRM by checking the tickbox.
**Add guests for all meetings**
You can add guests to meetings every time a meeting is booked through this Distribution Rule. This is particularly helpful if youβve recently onboarded a new sales rep and you want their manager to be on calls to guide them, for example.
**Override default meeting settings**
This is particularly helpful if you want to add a different meeting type to your router and override the meeting type that is selected in the router.
## Click β**Save**".
Your distribution rule is set and ready to be used in your Inbound Router. π
# How to create a Group Round Robin?
Source: https://help.revenuehero.io/rules/distribution/group-round-robin
Route meetings to multiple folks via Group Round Robin with Distribution rules.
Consider a scenario where you want both an AE and a SE to be on the same call.
With Group Round robin, we can automatically assign a meeting with reps from different functions.
The first step is for us to create the different groups within the same team in RevenueHero
## Steps to Create Groups
1. Go to **Settings β Teams.**
2. Create a new team and add all members from the different functions combined (eg: add all AEs and SEs)
3. Create a group for each function
4. Add all members part of the function and create the group.
A team member can be part of only one group.
### Navigate to Distribution Rules
1. To create a Distribution Rule, use the side nav bar and click on **Inbound β Distribution Rules.**
2. Now, click the β**Create New Rule**β button on the top-right corner of your screen.
3. The pop-up for Distribution Rule Setup requires you to first choose ββwho should the meetings be assigned to.
4. Click on βAssign to Multiple Membersβ in the pop-up for Distribution Rule Setup.
5. Pick the group that would be the primary participant. This is the group that would be round robin-ed based on the account setting i.e Strict/Flexible Round Robin.
6. The members from the second/third group will be added based on availability.
7. Once selected, you can adjust the meeting weightage for each team member.
8. Click βContinueβ.
#### Set Conditions to Check
This is where you tell RevenueHero which property in your CRM to look up to set this condition.
You can add multiple conditions with a combination of AND or OR for the Distribution Rule to check before meetings are assigned.
Click β**Continue**β.
#### Understanding Meeting Settings
There are a couple of settings that you can tweak and change in your distribution rule.
**Rule name**
Give your Distribution Rule a name.
For example, if youβre creating a Distribution Rule for your USA sales team, you can name it US sales.
**Update account owner**
You can choose to update the account owner in your CRM by checking the tickbox.
**Add guests for all meetings**
You can add guests to meetings every time a meeting is booked through this Distribution Rule. This is particularly helpful if youβve recently onboarded a new sales rep and you want their manager to be on calls to guide them, for example.
**Override default meeting settings**
This is particularly helpful if you want to add a different meeting type to your router and override the meeting type that is selected in the router.
Click β**Save**".
***
Your group round robin distribution rule is set and ready to be used in your Inbound Router. π
# Round Robin History
Source: https://help.revenuehero.io/rules/distribution/round-robin-history
See what has transpired via Round Robin in your rule and calibrate if necessary
## View Round Robin History for Inbound Router
1. To navigate to the Round Robin history page of your distribution rules, go to the sidebar and click on **Inbound β Distribution Rules**.
2. Hover over the rule of your choice and youβll see **Round Robin History**. Select it to open your ruleβs Round Robin progress on a new page.
***
## View Round Robin History for Relays
1. To view Round Robin history for Relays, go to the sidebar and click on **Relays β Distribution Pods**.
2. Hover over the rule of your choice and youβll see **Round Robin History**. Select it to open your ruleβs Round Robin progress on a new page.
***
## Layout of Page
The history page is designed to provide you with an eagle's eye view of the assignment and distribution enabling you to take sitrep on your rule behavior.
#### Round Robin period
The top-left corner displays the Round Robin period i.e. when this cycle of distribution started till date and the reset period of this cycle. Currently, each cycle resets every month and the distribution starts anew.
#### User information
The table displays all the information required to gain insights into where the distribution currently stands. The rows list all the users in this distribution cycle and the columns list the attributes highlighting the stages in the distribution.
1. **Level**
> An internally calculated score for each user in the distribution that indicates where the person currently stands in the distribution queue. If they're at the top, then they are next in line for an upcoming meeting.
2. **Meeting Assigned**
> The number of meetings a person has received in total in this distribution cycle.
3. **Upcoming**
> The number of meetings a person has received that are coming up in the future in this distribution cycle.
4. **Completed**
> The number of meetings a person has received that have been completed in this distribution cycle.
5. **Cancelled or No-show**
> The number of meetings a person has received that have either been canceled or marked as No-Shows in this distribution cycle.
6. **Added to rule**
> The date when this person was added to the Distribution Rule
7. **Weightage**
> The ratio of meetings this person should receive via the Distribution Rule
The table also indicates according to the current progress in distribution, which person would be next in line to be assigned for an upcoming meeting.
When a particular user in the distribution has an Out-Of-Office All-Day event marked on their calendar or a busy event spanning day(s), then that person is considered to be on vacation for that period. This is also indicated with a grayed-out row with a subtext indicating that the person is on vacation currently.
## Actions
Each person in the Round Robin queue has their meetings calibrated based on the [configured settings](/settings/organization/distribution#round-robin-calibration) and the changes are automatically managed by the product. But, in certain circumstances, one would like to credit back a meeting for a particular user or would like to take credit away for a particular user manually.
To begin adding or removing credits, hover next to the **Level** number, and click on the icon that appears. This should open a pop-up.
#### Manually add meeting credit
To give back meeting credits, click on **+Add** button in the pop-up window, adjust how many meeting credits you would like to credit a particular user with, and click on **Update** to persist the changes.
You should see it reflected in the **Level** value showing a decrease from the previous value. This indicates the user is in a meeting deficit now, and will assign further meetings to them more frequently to adjust for the deficit.
#### Manually remove meeting credit
To take back meeting credits, click on **-Remove** button in the pop-up window, adjust how many meeting credits you would to deduct for a particular user, and click on **Update** to persist the changes.
You should see it reflected in the **Level** value showing an increase from the previous value. This indicates the user is in a meeting surplus now, and will not assign further meetings to them as frequently to adjust for the surplus.
# Strict, Flexible, or Balanced Round Robin: which should you use?
Source: https://help.revenuehero.io/rules/distribution/round-robin-methods
The three Round Robin methods assign meetings on different inputs. Pick the one that matches whether you optimize for booking speed or even distribution.
RevenueHero gives you three Round Robin methods, and they are not interchangeable. Each one answers a different question before it shows a calendar: should the prospect see one rep's slots or the whole team's, and who wins when more than one rep is free? The method you pick decides how many slots the prospect sees and how evenly meetings land across your team. This page explains what each one does and when to use it.
**BEFORE YOU BEGIN**
Round Robin is an account-wide setting. The method you choose applies to every distribution rule and relay pod in your organization. Change it in **Settings β Distribution β Round Robin settings for meeting distribution β Change**.
## The three methods at a glance
| Method | What the prospect sees | Who gets the meeting | Optimized for |
| ------------ | --------------------------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| **Strict** | One rep's available slots | The rep chosen from the queue for that booking | Fully equal distribution based on lead volume |
| **Flexible** | Combined availability of the whole team | Whoever is free at the chosen slot; ties go to the rep with fewer meetings | More slots for the prospect, near-equal distribution based on availability |
| **Balanced** | Combined availability of the whole team | The free rep at the chosen slot, then auto-balanced toward the lightest-loaded rep | Even distribution by current workload, reducing skew across reps |
## Strict Round Robin
RevenueHero picks a rep from the team first, then shows the prospect only that rep's open time slots. The chosen rep gets the meeting at the slot the prospect books.
Use Strict when you want a predictable, sequential rotation and fully equal distribution tied to lead volume. The trade-off is fewer visible slots, since the prospect only sees one calendar at a time.
Strict pairs well with weightage. Teams running a deliberate ratio, like a 5:1 split between a senior and junior rep, often stay on Strict so the rotation is exact and easy to audit.
## Flexible Round Robin
RevenueHero shows the prospect the combined availability of everyone in the team. Whoever is free at the slot the prospect picks gets the meeting. If more than one rep is open at that slot, the meeting goes to the rep with fewer meetings assigned.
Use Flexible when booking speed and slot availability matter most. Because the prospect sees the whole team's calendar, there are almost always slots open, which lifts booking rates. Distribution stays near-equal but follows availability rather than a fixed order.
Flexible is the common pick for teams that care most about getting the prospect onto a calendar fast and want the widest set of times on screen.
## Balanced Round Robin
Balanced works like Flexible at the calendar, showing combined team availability, but adds a balancing step. The free rep at the chosen slot gets the meeting, and when multiple reps are free the one with fewer meetings wins. On top of that, RevenueHero auto-balances across reps to reduce distribution disparity, so the busiest and quietest rep stay close together.
Use Balanced when even distribution by workload is the priority. For the full detail on how Balanced reads workload, see [Balanced Round Robin](/rules/distribution/balanced-round-robin).
Switching methods takes effect immediately across every distribution rule and relay pod. A safe way to try a new method is to change it during a low-volume window and watch [Round Robin History](/rules/distribution/round-robin-history) before peak hours.
## How to switch methods
1. In the left sidebar, click **Settings β Distribution**.
2. On the **Round Robin settings for meeting distribution** card, click **Change**.
3. In the **Select distribution method** dropdown, pick the method you want. The three cards explain each one as you choose.
4. Click **Save**.
***
That is the difference between the three methods. Pick for booking speed with Flexible, exact rotation with Strict, or workload-balanced fairness with Balanced. πππ
The workload-aware method, in depth.
Control how vacations, no-shows, and reassignments affect the queue.
See where every rep stands in the current cycle.
Apply a method inside a routing rule with per-member weightage.
# How to update CRM owner fields when a distribution rule matches?
Source: https://help.revenuehero.io/rules/distribution/update-owner
Write the assigned rep back as the owner on lead, contact, and account records when a distribution rule matches.
When a distribution rule assigns a meeting, RevenueHero can write that rep back into your CRM as the owner so your records reflect who actually works the deal. You control this for **lead**, **contact**, and **account** records, and you pick which field each one updates. Account-level updates are the newest addition, so the rep who gets the meeting can now own the account too, not just the lead or contact.
**BEFORE YOU BEGIN**
1. [Connect your CRM to RevenueHero](/crm/salesforce/overview)
2. Have a distribution rule you can edit, or [create a new one](/rules/distribution/create-distribution-rule)
## How owner updates work
A distribution rule assigns each qualifying meeting to a rep. When you turn on owner updates, RevenueHero writes that rep's name into an owner field on the matching CRM records. You control this per record type:
* **Lead and Contact records** update the person-level owner.
* **Account records** update the owner at the account level. This is the newest option, and it works with Salesforce and Attio only.
For each type, you pick which field receives the rep's name. It does not have to be the standard `Owner ID`. Any owner-type field on the object is selectable, so you can write to a custom field like `Customer Success Manager` or `Alliance Manager` instead of the default owner.
## Update owner fields on a distribution rule
### Step 1: Open the owner-update panel
Open your distribution rule in **Inbound Router β Distribution Rules** and go to the **Assign Meetings** step. Find the **Do you want to update owner field in \?** panel next to the round robin list.
### Step 2: Turn on the records you want to update
Toggle on **Update Lead and Contact records**, **Update Account records**, or both. **Update Account records** sets the assigned rep as the owner on the account tied to the booking, not just on the lead or contact. Turn on all of them to keep every owner field in sync.
### Step 3: Choose which field to update
Under each **Which owner property should be updated for...?** dropdown, select the field that should hold the rep's name. The list shows every owner-type field on that object, so you can write to a custom field instead of the standard owner if your team tracks ownership somewhere specific.
Writing to a custom owner field keeps your standard account owner untouched while still recording who took the meeting. Teams doing named-account or ABM routing use this to log the working rep without overwriting the account's territory owner.
Where you set this depends on the rule's distribution type:
* **Single round robin:** you set the owner fields once for the whole rule as shown in the image above.
* **Group round robin:** you set them per included group. Each group's card shows **Updates owner field in Salesforce** or **Does not update an owner field** depending on whether or not owner update is setup. Click **Change** to open that group's dialog and choose the records and fields to update in the CRM.
### Step 4: Save the rule
Click **Continue** on the owner-field dialog, finish the rest of the rule, and save. The next time a meeting matches this rule, the assigned rep is written to the owner fields you chose.
## Which records get updated
| Record type | Toggle | What it sets |
| ----------- | ------------------------------- | ---------------------------------------------- |
| Lead | Update Lead and Contact records | Owner field on the matching lead |
| Contact | Update Lead and Contact records | Owner field on the matching contact |
| Account | Update Account records | Owner field on the account tied to the booking |
## What happens if you leave it off
If a toggle is off, the owner field for that record type is not written when the rule qualifies and a meeting is booked. RevenueHero flags this inline: "The CRM owner field won't be updated if the rule qualifies and a meeting is booked with the assignee." Turn the toggle on if you need the owner saved for reporting or downstream routing.
If a CRM flow or workflow also writes the same owner field, the two can compete and the owner can appear to switch between users after a booking. Pick one system to own the field, or add a short delay to your CRM automation so RevenueHero's update settles first.
***
Your distribution rule now keeps the CRM owner in step with the rep who takes the meeting. πππ
Route meetings to new owners via round robin.
Route meetings to the existing CRM owner for a lead or contact.
See what prospect and meeting data RevenueHero keeps up to date.
Route meetings across multiple groups of reps.
# How to create a Matching Rule?
Source: https://help.revenuehero.io/rules/matching/create-matching-rule
Route meetings to your existing CRM owner for lead or contact with Matching rules
Matching rules in RevenueHero help ensure that any new contact who fills up a form gets meetings scheduled with the same account owner in the CRM.
## Different Matching Rules
Matching rules can be set up to:
This assigns meetings to the same owner when the same contact submits.
**Example:**
[john@notion.com](mailto:john@notion.com) submits a demo request form on the 13th of November and is
assigned to Paula from the US sales team, and books a meeting with Paula.
If John submits the demo request form again on the 20th of November, RevenueHero will look up Johnβs account owner in the CRM and ensure that he is presented with the same ownerβs calendar.
This assigns meetings to the owner of related contacts.
**Example:**
[will@notion.com](mailto:will@notion.com) submits a demo request form.
[john@notion.com](mailto:john@notion.com) is an existing contact in Hubspot. Johnβs account owner is Niklas.
RevenueHero can look up contacts with the same domain, and assign the meeting to the account owner of the latest contact.
This assigns the meetings to the owner of the company. This is particularly helpful if you're running an ABM campaign and going after a targeted list of companies.
**Example:**
[rachel@notion.com](mailto:rachel@notion.com) submits a demo request form.
Notion is a company that already exists in your CRM and is owned by Michelle. RevenueHero can look up the company associated with the domain of the contact that submitted the form and assigns the meeting to the company owner.
This assigns the meeting to the owner of the account tied to the contact. This is particularly helpful if you want to ensure meetings are always routed to the account owner managing the relationship, rather than just the individual contact owner.
**Example:**
[rachel@notion.com](mailto:rachel@notion.com) submits a demo request form.
RevenueHero first searches for Rachel as a contact in your CRM. Once it finds her contact record, it looks up the **account associated with Rachelβs contact record**. Since Notion is owned by Michelle, the meeting is automatically assigned to Michelle, the account owner.
***
## Steps to create a Matching Rule for Inbound Routers
### Navigate to Matching Rule
1. To create a Matching Rule, use the side nav bar and click on **Inbound β Matching Rules**.
2. Now, click the β**Create Matching Rule**β button on the top-right corner of your screen.
3. The pop-up for Matching Rule Setup will first ask you to **choose the kind of matching**.
4. Click on β**Assign to Single**β in the pop-up for Matching Rule Setup.
5. Choose the CRM object you want to match with - either Contact or Account. Based on the property you select you can set up rules.
6. If you choose Contact, youβll be required to select β**What should be used to check if thereβs a match?**β. The options are between Prospect Email, Prospect Phone, or a custom CRM property of your choice. Once you make your selection, click β**Proceed**β.
7. If you choose Account, youβll be required to select β**What should be used to check if thereβs a match?**β. The options are between Prospect Email, Prospect Phone, or a custom CRM property of your choice. Once you make your selection, click β**Proceed**β.
8. Next, you need to decide who should be assigned meetings for this particular matching rule.
\
For the primary participant, choose which property you want to match the CRM object with. When a match is found, the prospect will be assigned to the owner of the selected property.
\
You can also choose if you always want to assign it to a specific member. If yes, choose the team and the member from the team.
Click βContinueβ.
9. Click β**Continue**β.
#### Set Conditions to Check
You can set additional conditions here based on CRM property values or Form Inputs that need to be checked.
Some conditions that you can check are if a prospect belongs to your ABM list or to skip records with empty account owner fields.
**OUR RECOMMENDATION**
Our recommendation is to have a chat with your team internally about when youβd like contacts to get matched before setting this up.
#### Understanding Meeting Settings
1. Lastly, you have the Meeting Settings where youβll need to give your Matching Rule a name.
For example, if youβre creating a Matching Rule to assign meetings to an existing companyβs owner, you can name it Match to the existing company owner. Youβll also have to choose if you want to update the account owner along with the owner property that needs to be updated in the CRM.
You also have an Advanced Settings button that you can click to enable fuzzy matching along with the CRM property that needs to be used for it.
***
## Steps to create a Matching Rule for Campaign Routers and Relays
### Navigate to Matching Rule
1. a. To create a Matching Rule for Campaign Routers, use the side nav bar and click on **Campaign β Matching Rules**.
b. To create a Matching Rule for Relays, use the side nav bar and click on **Relays β Matching Rules**.
**The following steps are the same for both Campaign Router and Relays.**
2. Now, click the βCreate New Ruleβ button on the top-right corner of your screen.
**Assign Meetings**
1. Click on βAssign to Single Memberβ in the pop-up for Matching Rule Setup.
2. Choose the CRM object you want to match with - either Contact or Account. And click βProceedβ.
3. Choose the property you want to match the CRM object with from the drop-down. When a match is found, the prospect will be assigned to the owner from the selected property.
4. Next, you need to decide how you want meetings to be distributed for this particular matching rule.
You can choose between assigning the meeting to the existing owner by matching the existing CRM object with the owner property.
Or you can choose to assign the meeting to a specific user by selecting the Team and User.
5. Click βContinueβ.
**Set Conditions to Check**
1. You can set additional conditions here based on CRM property values or Form Inputs that need to be checked.
2. Some conditions you can check are if a prospect belongs to your ABM list or skip records with empty account owner fields.
Our recommendation is to have a chat with your team internally about when youβd like contacts to get matched before setting this up.
**Understanding Meeting Settings**
1. Here youβll need to give your Matching Rule a name. For example, if youβre creating a Matching Rule to assign meetings to an existing companyβs owner, you can name it Match to the existing company owner.
2. Next, you have to choose if you want to update the account owner along with the owner property that needs to be updated in the CRM.
3. Click on the Advanced Settings button to enable fuzzy matching along with the CRM property that needs to be used for it.
4. Hit the βSaveβ button to finish creating your Matching Rule.
Youβll now be able to use this matching rule when you create a Campaign Router or Relays. π
# Adding Form Entries to Meeting Invites in RevenueHeroΒ
Source: https://help.revenuehero.io/settings/organization/add-form-entries-in-the-invite
Push the form answers your AE actually needs into the calendar invite, and leave the routing-only fields out.
When a prospect fills out your form, some answers help your AE prep (use case, current tool, team size). Others exist only to route the lead (country, industry, lifecycle stage). Sending all of them into the calendar invite buries the prep-relevant answers and echoes internal segmentation fields back to the prospect in their own calendar.
You control this in two layers: a global toggle that turns the feature on, and a per-form selector that picks exactly which answers land in the invite body.
A prerequisite for including form entries in the meeting invite is having a form setup. You must have either your own web form (such as HubSpot, Intercom, Pardot, or any other) embedded on your landing page and [mapped to a RevenueHero router](web-forms/overview.mdx) or a [RevenueHero form configured](routers/forms/custom-forms.mdx) and associated with the router link you share with the prospect.
## How form entries in invites work
| Setting | Where | Controls |
| :---------------- | :--------------------------------------- | :--------------------------------------------------------- |
| Master toggle | Organization Settings β Meeting Settings | Whether any form data appears in invites org-wide |
| Per-form selector | Marketing form β Edit settings | Which specific answers from that form appear in the invite |
The master toggle has to be on for any answers to appear. The per-form selector then narrows the list to only the answers worth showing the rep.
# How to add form entries to meeting invites?
Enabling this feature is an extremely straightforward process.
This is an organization-wide setting. Admins can enable or disable the option to include form entries in the meeting invitations being sent out.
In your RevenueHero dashboard, go to **Settings**. Under **Organization Settings**, click on **Meeting Settings** and locate **Add form entries in the Invites.**
Click **Edit**, toggle **Enable Add Form Entries in Invites**, and then hit **Save**.
Form answers now flow into invites for meetings booked through any router. To control which specific fields appear per form, continue below.
## Choose which form answers appear in the invite
Once the org toggle is on, open each marketing form's edit settings to decide which fields are worth including. This is where you keep prep-relevant answers in and leave routing-only fields out.
### Step 1: Open the form's edit settings
1. Go to **Forms** in the left sidebar.
2. Click the marketing form you want to configure.
### Step 2: Select the fields to include in the invite
1. Open the form's Settings screen.
2. For each field on the form, choose whether it should appear in the calendar invite body.
### Step 3: Save the form
Click **Submit**. The next meeting booked through this form uses the new selection.
The per-form selection applies only to meetings booked from that specific form. If you have multiple forms feeding the same router, configure each form separately. They do not inherit settings from each other.
Your form answers now land in invites with the precision you want. Reps get the prep context. Prospects do not see your internal plumbing. πππ
# How to invite users to RevenueHero?
Source: https://help.revenuehero.io/settings/organization/all-users
There are two ways you can invite a user to RevenueHero. We'll cover them both in this article.
**NOTE**
Only users who have **Administrator Access** will be able to invite other members to RevenueHero
## Invite users from Settings
1. Navigate to this section by going to **Sidebar** -> **Settings** -> **All Users**
2. Click on **Invite** from the far-right corner of the screen
3. Choose the role of the new member - they could be a **User**, **Manager** or an **Administrator**. Once the relevant role has been chosen and the email ID has been entered, click on **Send Invite**. An email invitation gets sent to the inbox.
In case the invite email isn't found in the inbox, try checking under Spam
***
## Invite Using Invite Button From Top Nav
The second way to add members is via the **Invite user icon**.
You'll see the invite icon on the top right corner near your profile picture and help button. This lets you invite users to RevenueHero and add them to a team in one go.
1. Click on the **Invite user icon** in the top right corner, from whichever RevenueHero screen you are on.
2. In the invite pop-up, enter their email address and choose the User role from the drop-down.
3. You can also choose which team you would like to add this user to. Itβs an optional step and can be done later from Settings as well.
4. Click the **Send Invite** button.
# How to customize your Widget?
Source: https://help.revenuehero.io/settings/organization/branding
Customize how your scheduler loads, looks and feels. Let the Picasso in you run wild.
If you're an administrator, you can customize the RevenueHero booking widget to match your organization's branding.
## Navigate to Branding
You can access the **Branding** section by heading to "**Settings**" from the left navigation menu and by clicking on "**Branding**" under the "**Organization Settings**".
You can access the following:
1. Themes - to customize the look and feel of the scheduling widget.
2. Meta Info - customize the description and meta info that goes along with your organtization's meeting links.
3. Scheduler Settings - Choose time format and widget redirection timer.
## Select your theme
Pick the theme that best suits your organization's design language. We've 6 unique themes that you can choose from to make your scheduler look chic.
#### Classic
#### Sharp
#### Frozen Glass
#### Serenity
#### Retro
#### Terminal
You can also toggle between light and darker themes using the icon highlighted in the screenshot in the top-right corner of the themes section.
## Choose your colors
You can configure the color scheme of the RevenueHero booking widget by using the color-picker option. A real-time preview of the color changes can be seen on the right.
There's also a text visibility indicator that indicates the readability of text in chosen color based on a [standard measure](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html). You can see that for **Light Green**, the readability indication for **Poor**, whereas for **Purple** the readability indication was **Good** in the previous screenshots.
Your Organization's name and logo that you have updated in the "[Organization Details](/settings/organization/details)" section will be displayed on the booking widget.
Add descriptions that would be added to previews for your meeting links.
**Time Format**
Toggle between 12hr and 24hr format for your scheduler widgets.
**Redirection Timer**
Set a duration to automatically redirect your prospects from the confirmation page to the [redirection page](/routers/inbound/create-inbound-router#redirection) of your choice.
# Custom Email Blocklist
Source: https://help.revenuehero.io/settings/organization/custom-email-blocklist
Block people and organizations that shouldn't book meetings with your team. From competitors snooping your product to the repeat bookers who never show up to meetings, protect your reps' slots from being blocked by unwanted meetings.
**BEFORE YOU BEGIN**
You need admin access to your organization's settings. The blocklist lives under organization-level [Meeting Settings](/settings/settings-overview), so the domains you add apply across your whole account.
## How the blocklist works
Think of it as one guest list of people who are turned away, checked on every form submission.
* You add entries in **Meeting Settings** as either a full domain (`competitor.com`) or a single address (`repeat-noshow@testing.com`).
* When someone submits a form, RevenueHero checks the email they entered against your blocklist.
* If it matches, they're disqualified and never shown a scheduler.
* This applies everywhere automatically once the entry is saved. Every RevenueHero link and every Relay Quick Book (magic slots) honors the list. There is no per-form or per-link switch to flip.
## Add entries to your blocklist
### Step 1: Open Meeting Settings
In the left sidebar, click **Settings β Meeting Settings**, then scroll to the **Custom Email Blocklist** section near the bottom of the page.
Before you add anything, this section reads **No domains blocked yet**. That is your starting point.
### Step 2: Add a domain or address
Click **Add Domains**, then enter what you want to block. You have two levels of precision:
* **A full domain**, like `acme-competitor.com`. This blocks every address at that company. Use it for competitors and known spam sources, where you want the whole organization shut out, not one inbox.
* **A single address**, like `serial-rescheduler@gmail.com`. This blocks one person while leaving everyone else at that domain free to book. Use it for an individual time-waster on a shared consumer domain like Gmail or Outlook, where blocking the whole domain would also block real prospects.
Blocking at the domain level is the cleaner move for competitors. Teams tell us they would rather add `competitor.com` once than chase each new rep who signs up from a fresh alias. One domain entry covers everyone who works there, today and later.
### Step 3: Save
Save your entries. The block is live immediately, across every link and Relay Quick Book in your account. There is nothing to enable on individual forms.
## What matching looks like
A domain entry matches anyone whose email ends in that domain. An address entry matches only that exact email. So `acme.com` turns away `jane@acme.com` and `sales@acme.com` alike, while `jane@acme.com` turns away only Jane.
The blocklist stops **new** submissions. It does not cancel meetings that were already booked before you added an entry. If a blocked address already has a meeting on the calendar, cancel or reassign it from your [Meetings](/meetings) view. Adding the entry only prevents the next attempt.
***
Your blocklist is set. The people you never wanted on your calendar are turned away before they can book, and your reps get their time back. πππ
Filter spam and invalid emails at submission with real-time email validation, on top of your blocklist.
Connect each form field, including the email field the blocklist checks, to your router.
Route the leads you keep to the right rep, now that rules no longer carry your blocking logic.
Control CRM sync, base assets, and themes across your booking links.
# How to change Organization details?
Source: https://help.revenuehero.io/settings/organization/details
From the Organization details section in RevenueHero, you can update your **Company Name**, **Logo** and **Time Zone**.
Navigate to this section by going to **Sidebar** -> **Settings** -> **Organization Details**
Update your **Organization Name**, choose the relevant **time zone**, upload your **company Logo** and click on **Save** on the bottom right corner.
# How to change Round Robin settings?
Source: https://help.revenuehero.io/settings/organization/distribution/distribution
We talked about creating a [Distribution Rule](/rules/distribution/create-distribution-rule) in-depth. In this article, we'll look at some organization-level settings that you can set as an admin.
## Strict vs Flexible Round Robin vs Balanced Round Robin
In RevenueHero, you have the option to display slots based on a Strict Round Robin or a Flexible Round Robin or a Balanced Round Robin.
Head to "**Settings**" from the left navigation menu and click on "**Distribution**" to update the distribution settings.
In the "**Round Robin settings for meeting distribution**" section, click on the "**Change**" button under the "**Current meeting distribution method**".
With Strict Round Robin, prospects are only shown the time slots of the member who is up next for meetings based on round robin assignment.
When a prospect submits a form to book a meeting, the assignee who is up next for round robin is pre-determined based on your distribution rules, and only that memberβs available slots are presented to the prospect.
**This setting optimizes for equal distribution of meetings amongst members.**
With Flexible Round Robin, prospects are shown the time slots of all the members who are available on any chosen day.
When a prospect submits a form to book a meeting, they are shown the availability slots of all the members of the team that are available to take that meeting.
If there is more than one member available for the time slot that the prospect chooses, then the meeting is assigned to the one with the least number of meetings.
If there are only two members with the same number of meetings, the assignment is random.
**This setting optimizes for a larger number of availability slots being presented to your prospects.**
With Balanced Round Robin, prospects are shown more time slots to choose from while ensuring meetings are equitably distributed across the team.
When a prospect submits a form to book a meeting, they are shown the availability of all members who are eligible to take the meeting.
Behind the scenes, RevenueHero calculates a dynamic average of meetings across all reps. If a member's assigned meetings exceed a defined threshold above this average, they are temporarily removed from the scheduling pool.
As other reps catch up and the average shifts, the previously excluded member is automatically re-added β ensuring a fair balance over time.
**This setting optimizes for both higher slot visibility for prospects and fair meeting distribution among team members.**
***
## Round Robin Calibration
### When a Member goes on Vacation
Within RevenueHero, you have the option to remove meeting assignments to particular users when they are on vacation or are Out-of-Office.
From the "**Distribution**" settings, you can turn on the Toggle where if a user goes on Vacation, RevenueHero will track that from the all-day 'Out-of-Office' event marked on their calendar and will not assign meetings to them even if they are part of the round robin assignment.
There is also an option to compensate for meetings after theyβre back. When this is enabled, RevenueHero will assign more meetings to the rep who was away to ensure a balanced distribution of meetings.
***
## Reset the round robin queue
Round robin keeps a running count of how many meetings each rep has taken, so the next meeting goes to whoever is due. Resetting the queue clears those counts and starts the rotation fresh. Most teams align the reset with the period they measure reps on, so the count that drives distribution matches the one that drives quota.
Choose how often the queue resets for your account: **daily**, **weekly**, **fortnightly**, **monthly**, or **quarterly**. Every distribution rule, distribution pod, and matching rule inherits this schedule unless it sets its own.
### When a meeting is canceled or marked as a no-show
If an assigned meeting is canceled or marked as a 'No-show' by the user in RevenueHero, you can ensure equal distribution of quality leads to your reps by crediting back a meeting whenever this happens.
You can also ensure a balanced distribution of meetings when there are new users in the team or when there are only a few days of the month left, by giving them more priority in the round-robin assignment.
### When a meeting is reassigned
If an meeting is reassigned to another rep through RevenueHero, this setting when toggled on will add a meeting credit to the initially assigned rep and remove a meeting credit from the new rep.
# Using Subgroups for Complex Qualification Logic
Source: https://help.revenuehero.io/settings/organization/distribution/subgroups
Nest conditions logically to match how your qualification rules actually work. Eliminate endless AND/OR chains.
Your lead qualification logic is no one-size-fits-all, it's much more nuanced, and for good reason. Maybe your enterprise deals have different rules depending on the region. High-value prospects bypass normal thresholds. When you're trying to enter a new market, certain industries may qualify regardless of revenue. That's three different paths to qualification. Not one monster condition chain.
With **Subgroups**, you can organize these distinct qualification paths clearly instead of wrestling with one impossible condition chain. It lets you nest multiple conditions within logical groups, making your distribution rules easier to build, maintain, and troubleshoot.
Subgroups are available in:
* **Distribution Rules** (used in Inbound Routers)
* **Distribution Pods** (used in Relay Routers)
# How Subgroups Work
Here's how conditions are evaluated when you use subgroups:
| **Level** | **Logic** | **Behavior** |
| :--------------------------------- | :-------- | :---------------------------------------------------------- |
| Between Groups | OR | A lead qualifies if they match ANY group |
| Between Subgroups (within a group) | OR | Within a group, a lead qualifies if they match ANY subgroup |
| Within a Subgroup | OR | All conditions in a subgroup must be true |
| Within a Condition | AND | All logic within a condition must be true |
# BEFORE WE BEGIN
## Enable **Advanced Condition Grouping**
Go to **Settings** β **Distribution** β **Enable advanced condition grouping**
* Set the toggle to **Allowedβ**
## Create Teams
\
You'll also need to have [Teams already created](/teams/create-teams) before setting up distribution rules or pods with subgroups.
# **Adding Subgroups to Distribution Rules**
Use subgroups in Distribution Rules to organize complex qualification logic for your Inbound Routers.
Go to **Inbound** β **Distribution Rules** and either:
* Click **Create Distribution Rule** to start fresh, orΒ
* Select an existing rule to edit
Choose how meetings should be assigned:
* **Single team round robin** - Assign to members within one team
* **Collective round robin** - Assign across multiple teams
Select the team(s) that should receive qualified prospects.
For detailed steps on team assignment, see [Creating a Distribution Rule](/rules/distribution/create-distribution-rule).
In the **Add Conditions** section, click **Add Condition With Subgroup**.
A dropdown appears showing available fields from:
* **Form Inputs** - Data submitted through your form
* **HubSpot Properties** or **Salesforce Fields** - Data from your connected CRM
* **Enrichment** - Data from enrichment providers like Ocean, Apollo, Clearbit, or Crustdata
Click on a field to add it as a condition. For example:
* Select **Country** from HubSpot Properties
* Choose an operator (equals, contains, is not empty, etc.)
* Enter the value: "United States"
To add more conditions within the same subgroup, click **AND**. Remember, all conditions within a subgroup must be true for the lead to qualify through that path.
Subgroups appear with colored borders and indentation to show they're nested within a group.
### **To add another subgroup within the same group:**
Click **Add Subgroup** within that group. This creates an alternate qualification path using OR logic.
### **To add another group:**
Click **Add Condition Group** / **Add Condition with Subgroup** at the bottom. This creates a completely separate qualification path that also uses OR logic at the top level.
You can nest subgroups within subgroups for even more complex logic.
Once your conditions are configured, click **Proceed** and review the distribution rule. Click **Iβm happy with the distribution rule** to finish.
Your distribution rule with subgroups is now ready to use in your Inbound Router!
# **β Adding Subgroups to Distribution Pods**
Use subgroups in Distribution Pods to organize qualification logic for your Relay Routers.
Go to **Relays** β **Distribution Pods** and either:
* Click **Create Distribution Pod** to start fresh, or
* Select an existing pod to edit
Choose how meetings should be assigned:
* **Single team round robin** - Assign to members within one team
* **Collective round robin** - Assign across multiple teams
Select the team(s) that should receive qualified prospects.
For detailed steps on team assignment, see [Creating Distribution Pods](https://help.revenuehero.io/routers/relays/create-relays#set-up-distribution-pods).
In the **Add Conditions** section, click **Add Condition With Subgroup**.
The interface works exactly the same as Distribution Rulesβselect fields from Form Inputs, CRM properties, or Enrichment data to build your qualification logic.
Follow the same process as Distribution Rules:
* Add conditions within subgroups (connected by AND)
* Add multiple subgroups within groups (connected by OR)
* Add multiple groups (connected by OR)
* Nest subgroups within subgroups as needed
Once your conditions are configured, click **Proceed** and review the distribution rule. Click **Iβm happy with the pod** to finish.
Your distribution pod with subgroups is ready to use in your Relay Router!
# Best Practices
* **Start with groups, then add subgroups.** Think about your major qualification categories first (regions, deal sizes, product lines), then break them into specific subgroups.
* **Use subgroups for "AND" logic, groups for "OR" logic.** If conditions must ALL be true, put them in one group. If ANY could qualify a lead, create separate subgroups or groups.
* **Keep subgroups focused.** Each subgroup should represent one clear qualification path. Put your most common qualification paths first.
* **Test as you build.** Use the **Refresh to get the latest fields** link to ensure you're seeing current data from your CRM and enrichment sources.
If leads aren't routing as expected, check that:
* Your CRM fields are correctly mapped and contain data
* Enrichment providers are properly configured
* The team members in your distribution rule/pod have connected calendars
# How to customize email domain?
Source: https://help.revenuehero.io/settings/organization/email-domain
Give your reminder emails your brand's touch by adding a custom domain.
The email domain from which reminder emails are sent to your prospects can be customized by following these steps.
1. To update your email domain, head to "**Settings**" from the left navigation menu and click on "**Email Configuration**" under "Organization Settings".
2. Click on "**Get Started**"
3. Enter the name of your domain and click on "**Setup Now**".
4. Add the three CNAME records in your DNS settings and click verify once done.
5. Once verified, you would be able to customize the phrase/string before the @
6. You're all set!
In case your domain is down/inaccessable, the fallback domain will be used.
# How to manage availability exceptions?
Source: https://help.revenuehero.io/settings/organization/exceptions
Create one-off blocks and overrides so your team's availability reflects reality, not just their default working hours.
Working hours cover the typical week. But what about the afternoon your team is at an offsite? Or the Saturday morning a rep volunteered for a product launch? Default schedules can't handle one-off changes, and asking reps to manually update their calendars every time creates gaps.
**Exceptions** let you create date-specific availability overrides that sit on top of your team's regular working hours. Block a rep out for a Wednesday afternoon training session, or open up availability on a Sunday for a critical product launch. Exceptions apply per-user, per-date, and can be scoped to specific meeting categories.
**BEFORE YOU BEGIN**
Exceptions build on top of your team's existing availability setup:
1. [Set up working hours](/settings/personal/my-availability) for each user
2. [Create meeting types](/type/create-meeting-type) and group them into [meeting categories](/meeting-categories/meeting-categories) if you want to scope blocks to specific meeting types
## How exceptions work
There are two types of exceptions:
| Type | What it does | Use case |
| ------------------------- | ----------------------------------------------------------------- | -------------------------------------------------------------- |
| **Unavailability Block** | Removes a user from the booking pool for specific hours on a date | Team offsite, training session, dentist appointment |
| **Availability Override** | Adds a user to the booking pool outside their normal hours | Weekend product launch, extended hours for end-of-quarter push |
Both types can be created for a single day or across multiple days. Each block is scoped to a date, a time range, and one or more users.
**Key behaviors:**
* Blocks are applied in each user's local timezone. If you create a block for 2-5 PM and assign it to reps in New York and London, each rep is blocked 2-5 PM in their own timezone.
* Admins can create blocks for any user in the organization. Individual users can only create blocks for themselves.
* Blocks can optionally be scoped to specific **meeting categories**. A block scoped to "Enterprise Demos" won't affect "SDR Screening Calls."
## How to create an exception
Go to **Settings,** under **Organization** Settings, find and click onΒ **All Exceptions**
On the top right corner, you'll find **Create an exception** button. Click on it.
Choose one of the four exception types:
* **Unavailability Block for a day**: Block specific hours on a single date
* **Unavailability Block for multiple days**: Block across a date range
* **Availability Block for a day**: Override hours on a single date
* **Availability Block for multiple days**: Override across a date range
Once you select the exception type you want to set up, click on **Proceed**.Β
Pick the **date** (or date range for multi-day blocks) for which you want to set up blocks.
Set the requiredΒ **time range** (e.g., 2:00 PM to 5:00 PM) you want to create the exception for. Add a note that help you easily identify the purpose of the block and click **Proceed**.
Select all the **Meeting Categories** that you want to be included in this exception and **Proceed**.
Once you have included the meeting categories, select all the users that this exception block must apply to.Β
If you assigned the block to multiple users, RevenueHero creates individual per-user blocks internally, each applied in the user's own timezone.
Click on **Submit** and your exception block is now succesfully created.Β
Availability overrides cannot override holidays. If a user is assigned to a holiday on a date, no block can make them bookable. Holidays are a hard stop in the availability chain.
## Admin vs. Personal views
There are two places to manage exceptions:
| View | Sidebar location | Who can use it | Scope |
| ------------------ | -------------------- | -------------- | ---------------------------------------- |
| **All Exceptions** | Organization section | Admins only | Create and view blocks for any user |
| **My Exceptions** | Personal section | All users | Create and view blocks for yourself only |
Admins see the full calendar with all user blocks, user avatars, and aggregate counts. Individual users see a list of their own blocks in the **My Exceptions** view, organized by month.
Reps can use the **My Exceptions** link in the **Personal Settings** to see only their own blocks. They can also manage these exception blocks from here.
Navigate to **Settings -> Organization -> All Exceptions** in the sidebar to see the organization-wide calendar view.
The page shows a monthly calendar with color-coded labels:
* **Blocked** (red): Unavailability blocks. The number shows how many users are blocked on that day.
* **Allowed** (green): Availability override blocks. The number shows how many users have extended availability.
* **User avatars**: Hover to see which specific users are affected.
The right sidebar shows a monthly summary with total block counts, split by Available and Unavailable.
Navigate to **Settings -> Personal -> My Exceptions** in the sidebar to see the individual user calendar view.
\
Each entry shows the date, time range, duration, whether it's a block or override, the meeting categories it applies to, and any notes. The "**...**" menu on each row lets users edit or delete that exception.
## Conflict detection
When creating or editing a block, RevenueHero checks for conflicts with existing blocks, holidays, and schedules. There are two severity levels:
These prevent you from saving the block:
* **Block overlap**: Another block already exists for the same user on the same date and overlapping time range
* **Holiday overlap**: The user is assigned to a holiday on that date. You cannot create a block over a holiday.
* **Schedule overlap with event meeting type**: The block conflicts with a scheduled event-type meeting
These let you proceed but flag a potential issue:
* **Redundant unavailability**: You're creating an unavailability block during hours the user is already unavailable (outside their working hours)
* **Redundant availability**: You're creating an availability override during hours the user is already available (within their working hours)
## How exceptions interact with other availability controls
Exceptions sit in the middle of the availability priority chain. When RevenueHero checks whether a user is bookable for a specific slot, it evaluates these rules in order:
| Priority | Check | Result if triggered |
| ----------- | ------------------------------- | ----------------------------------- |
| 1 (highest) | Meeting limits hit? | Blocked (no override possible) |
| 2 | Holiday assigned? | Blocked (no override possible) |
| 3 | Availability override block? | Available (overrides working hours) |
| 4 | Unavailability block? | Blocked (overrides working hours) |
| 5 | User on vacation + has nominee? | Use nominee's availability |
| 6 | Outside working hours? | Blocked |
| 7 | None of the above | Available (within working hours) |
**The key takeaway:** Availability overrides can bypass working hours and unavailability blocks, but they cannot override holidays or meeting limits. ***Holidays and meeting limits are absolute.***
Holidays can be created over existing blocks (the holiday takes precedence), but blocks cannot be created over existing holidays. If you need to block a date that has a holiday, remove the holiday first.
## How to delete or edit an exception
1. Navigate to **Settings β Organization β All Exceptions**
2. Click on the day in the calendar that has the block you want to modify
3. Click the block entry to open the edit view
4. Make your changes and click **Save**, or click **Delete** to remove the block
Individual users can edit or delete their own blocks from **My Exceptions**.
Your availability exceptions are configured. Your team's schedules now reflect what's actually happening, not just their default 9-to-5. πππ
# How to set up company holidays?
Source: https://help.revenuehero.io/settings/organization/holidays
Create account-level holidays to automatically block your team's availability. No more relying on everyone to manually block their own calendars. Without holidays in RevenueHero, your team has to manually block their calendars for every company holiday. If one person forgets, meetings get booked on Christmas.
# What are holidays in RevenueHero
**Holidays** are account-level dates that administrators create and assign to users. When a user is assigned to a holiday, they're completely removed from the booking pool for that date. No slots generated, no meetings booked.
# How it works
1. An administrator creates a holiday with a name and date (e.g., "Christmas" on December 25th)
2. The admin assigns specific users to that holiday
3. On the holiday date, those users are removed from the candidate pool **before** any slots are generated
Different teams can have different holidays. Your US team gets July 4th, your UK team gets Boxing Day. Each account can have **one holiday per date**.
# The Holidays page
Go to **Settings β Holidays** to see all holidays for your account.
The page is split into two views:
* **Left panel**: Holiday cards showing the date, name, and who's assigned (e.g., "All members" or specific users). The **In 2 days** and **Up next** labels help you see what's coming up for your team
* **Right panel**: A calendar view organized by month, with **Upcoming** and **Past** tabs to filter
## Create holidays
You can choose to create holidays from preset templates or completely from scratch.
The fastest way to get started is to use a pre-built country template.
* **United States Federal Holidays 2026** (11 holidays)
* **Canada Federal Holidays 2026** (11 holidays)
* **United Kingdom Bank Holidays 2026** (8 holidays)
* **Australia National Public Holidays 2026** (9 holidays)
* **India National Holidays 2026** (15 holidays)
Each template card shows a preview of included holidays (e.g., New Year's Day, Martin Luther King Jr. Day, Presidents' Day for the US template). Once you proceed, all holidays from that template are added to your account at once.
Templates are a one-time import. After importing, you can edit or delete individual holidays. Adding a template won't duplicate holidays that already exist on the same date.
If your company observes holidays not covered by the templates, or you want to add custom company dates (team offsite, company anniversary), create them manually.
Use \*\*"Add Holiday" \*\*to add multiple holidays in one go
You can add several holidays at once before saving, which is useful when your company has unique dates that aren't in any standard template.
## Assign users to a holiday
Every holiday has an **Applicable to** setting that controls which team members observe it. You can edit this at any time by clicking the **β―** menu on any holiday and selecting **Edit**.
The Edit Holiday modal has two sections:
* **Holiday details** (left): Change the date or rename the holiday
* **Applicable to** (right): Choose who observes this holiday:
* **Everyone** β All members in your organization (default)
* **Everyone in team** β All members of a specific team
* **Specific members** β Hand-pick individual users
In the calendar view, you can see at a glance how each holiday is assigned. Some show "All members" while others show specific user avatars when only a subset of your team observes that holiday.
## Region-specific holidays
Not every team observes the same holidays. Combine templates with selective assignment:
1. **Import the US template** and assign those holidays to your US team
2. **Import the UK template** and assign those holidays to your UK team
3. **Import the India template** and assign those holidays to your India team
Each user only gets blocked on the holidays they're specifically assigned to. Someone on your India team won't be blocked on July 4th unless you explicitly assign them.
You can import multiple country templates. If two templates share a date (e.g., New Year's Day), only one holiday is created for that date.
## Why not just use calendar events?
There are two main reasons why it's better to use Holidays setting instead of just calendar events.
Administrators ensure everyone observes the same holidays without relying on individuals to block their calendars. No more "someone forgot to block Christmas."
The system knows it's a holiday, not just "busy." The Holidays page gives you a centralized calendar view of when your team is unavailable, organized by month with upcoming and past views.
## How to delete a holiday
1. Navigate to **Settings β Holidays**
2. Click the **β―** menu on the holiday you want to remove
3. Click **Delete**
Deleting a holiday removes all user assignments for that holiday. The deletion is a soft delete, so history is maintained for audit purposes.
A user cannot be deleted from your account if they have holiday assignments. You must remove their holiday assignments first, then delete the user.
## How holidays interact with other availability controls
Holidays are checked early in the availability flow, right after meeting limits:
| Step | Check | Result |
| :--: | :----------------------------- | :------------------------- |
| 1 | Meeting limits hit? | Blocked (No override) |
| 2 | Holiday assigned? | Blocked (No override) |
| 3 | Availability override block? | Available |
| 4 | Unavailability block? | Blocked |
| 5 | User on vacation + has nominee | Use nominee's availability |
| 6 | Outside working hourse? | Blocked |
| 7 | None of the above | Available |
The key thing: **availability override blocks cannot override holidays.**
Override blocks can bypass working hours and unavailability blocks, but holidays and meeting limits are a hard stop. If someone is assigned to a holiday, no block or setting can make them bookable on that date.
# Organization Integrations
Source: https://help.revenuehero.io/settings/organization/integrations
Learn how to integrate RevenueHero with Slack, HubSpot, Salesforce, Zoho, or Attio CRM tools.
Whether you want to look up owners of existing accounts, route to specific sales reps, or pass the meeting information to your CRM tool, integrating your CRM is the first step in getting started with your RevenueHero setup.
**NOTE**
RevenueHero currently integrates with **Salesforce**, **HubSpot**, **Attio**, and **Zoho** CRMs.
Integration with your CRM tool is fairly straightforward. It'll take you a couple of minutes and just 4 steps to follow.
### CRM Integrations
Steps to integrate with HubSpot CRM
Steps to integrate with Salesforce CRM
}
href="/crm/zoho/overview"
>
Steps to integrate with Zoho CRM
}
href="/crm/attio/overview"
>
Steps to integrate with Attio CRM
***
## Other Integrations
Steps to integrate with Slack
Steps to integrate with Okta
***
## Why do I need to connect my CRM?
It is mandatory to connect your CRM to be up and running with your account. RevenueHero acts as the layer between your *Prospect plane* like Website, Campaigns, Inbox, etc. and your *CRM plane*.
It integrates deeply with your CRM to help channel your prospect data into the right CRM constructs such as Leads, Contacts, Accounts, Events or their properties to help you stay updated with all the information in your prospect's qualification and buying process.
All the information that RevenueHero pushes to your CRMs helps you keep track and do reporting in your CRM and helps identify and fix any leaky funnels.
**NOTE**
Please note that RevenueHero will not sync and store your CRM information. It is mainly used for things like real-time lookups for finding existing prospects, creating new prospects/events and setting up & syncing values into mapped CRM fields.
# Customizing Layouts in RevenueHero
Source: https://help.revenuehero.io/settings/organization/layouts
With custom Layouts, design scheduling experiences that feel like an extension of your brand.
Your scheduling interface is where a prospectβs interest turns into intent. With **Layouts** in RevenueHero, you can fully tailor the look and feel of your meeting booking pages, forms, and confirmation screens to create a on-brand experience for your prospects.
# What are Layouts?
**Layouts** in RevenueHero define the structural design of your meeting scheduling experience, including how your calendar, form, and confirmation interfaces appear to prospects when they book a meeting with your team.
Admins can create and manage custom Layout templates. Once created, these templates can be used by team members when setting up their personal meeting links.
## **How to Set Up Custom Layouts?**
In your **RevenueHero dashboard**, go to **Settings**. Under **Organization Settings**, click on **Branding** and navigate to the **Layouts** tab.
Click **Create** and name your custom layout so your team can easily identify its purpose.
Under **Layout Appearance**, customize how your scheduling experience looks and feels.Β
**Add Images or Videos**
* Click **Upload** to include an image or video in your booking, form, and confirmation pages.
* You can **drag and drop** an image or upload it directly from your computer.
To include a video from **YouTube**, **Vimeo**, or **Loom**, paste the URL in the **Embed from URL** field and click **Add**.
You can use the media previously uploaded by you or another admin by selecting **My Uploads** or **Team Uploads**.
#### **Choose Media Placement**
Choose how the uploaded media appears on the page - as background, or aligned to left or right, and preview the changes instantly in the right panel.
#### **Display Organization Logo and Assignee Profiles**
Toggle on the following options based on what you want to show on your booking page:
* **Display Organization Logo** - To include your organization's logo in the booking form
* **Display Assignee Social Profiles** - To include the social media profiles of the member the meeting being booked in assigned to
The memberβs social media profiles will appear only if theyβve linked them to their RevenueHero account.
Once you have customized your layout, use the dropdown at the top of the preview section to view how each page appears, including the **Booking page**, **Form page**, **Confirmation page**, and **Meta Info Page**.
You can also switch to **mobile view** to see how the experience adapts on smaller screens.
Your **Social Preview Settings** determines how scheduling links appear when shared on social platforms or chat tools. By default, this follows your **global settings**, but you can disable that to customize it specifically for this layout.
Scroll down to:
* Add a **Meta Title**
* Write a **Description** for the meeting
* Upload an **Image** to be displayed when the link is shared
Once youβre happy with the customization, click **Create**.
Your new layout template is ready! Team members can now select this layout while creating their **personal meeting links**.
# How to create lists in RevenueHero?
Source: https://help.revenuehero.io/settings/organization/lists
Lists can be created in RevenueHero and used in routing conditions to check values against i.e if the value is part/not part of a list.
Here's how you can create a list:
1. Go to Settings and click on Lists.
2. Click on **Create list**.
3. Pick the option of your choice from the menu.
1. Enter the name for the list.
2. Enter the values you want to add to the list.
1. Enter the name for the list.
2. Upload the **csv** file you want to pick the values from.
3. Select the column you want to add to the list.
4. Ensure that the values are the ones to be added from the preview.
1. Enter the name for the list.
2. Pick the object from which you want to pick the field from - Leads, Contacts, Accounts/Company.
3. Pick the field from the list.
4. Select the values you would like to add to the list.
1. Enter the name for the list.
2. Pick the Enrichment data set from the options.
3.Choose the specific values you would like to add to the list.
Once the list has been created, you can add it to the routing logic.
3. Select the rule you'd like to add the list to and pick the field you want to match against the list.
4. Select the list and choose between **is part of a list** or **is not part of a list**.
5. You're all set!
# How to set up Meeting Locations
Source: https://help.revenuehero.io/settings/organization/meeting-locations
Build a reusable catalog of how meetings happen (video, phone, or in-person) and attach them to your meeting types so prospects can pick how they connect.
Prospects don't always want the same thing. Some want a quick phone call, some want a Zoom, and a few still walk into your office. Meeting locations give you one place to define every way your team can meet a prospect, so you can either pin a single method to a meeting type or let the prospect choose at booking time.
**BEFORE YOU BEGIN**
For Video conference locations, the conferencing tool comes from the assigned rep's integrations. Make sure your team has connected at least one of these before they own a meeting type:
1. [Connect Zoom](/integrations/zoom)
2. [Connect Google Meet](/integrations/google-meet)
3. [Connect Microsoft Teams](/integrations/microsoft-teams)
## How meeting locations work
A meeting location is a reusable account-level record. Each location has one of three modes:
* **Video conference**: the rep's connected tool (Zoom, Google Meet, or Teams) generates a unique link per booking.
* **Phone**: the rep calls the prospect directly. No conferencing link is sent.
* **In-person meeting**: a fixed address goes into the calendar invite.
Once you've created a location, attach it to as many meeting types as you want. When the prospect books, the location decides what conference link (or address, or phone instruction) lands in the calendar invite and reminder email.
## Set up a meeting location
### Step 1: Open the Meeting Locations settings
1. In the left sidebar, click **Settings β Meeting Settings**.
2. On the **Meeting Locations** card at the top of the page, click **View Locations**.
You'll see every location your account has, with the type badge (Phone, Video conference, or In-person meeting) and any description you've written.
### Step 2: Start a new location
Click **Create Meeting Location** in the top-right corner. This opens the type picker, where you decide how this meeting will happen.
### Step 3: Pick the meeting type
Click the card that matches how you want this meeting to take place, then click **Proceed**.
* **Video conference**: picks up Zoom, Google Meet, or Teams from the assigned rep's integrations. Use this for product demos, customer success calls, and most discovery meetings.
* **Phone**: the rep calls the prospect at the number captured on the form. Use this for SDR qualification calls or when the prospect skips a webcam.
* **In-person meeting**: a static address you set yourself. Use this for office visits, trade-show booths, or branch appointments.
You don't have to pick one and stick with it. Create one location of each type, then on the meeting type itself choose **Let the prospect choose** so the booker sees all three options on the scheduler.
### Step 4: Fill in the basic details
Give the location a name and a short description. The name shows up on the scheduler card the prospect sees, so write it from their perspective: "30-min video call", "Quick phone call", "Visit our SF office".
If you picked **In-person meeting**, you'll also see a **What should be in the location field** input. Whatever you type here (for example, *Conference Room 3, HQ Building, 123 Market St*) goes into the calendar invite's location field, so the prospect can map it from their calendar app.
### Step 5: Customize the invite and reminder
Two collapsible sections sit below the basic details:
* **Calendar Invite**: the subject and body of the calendar invite that goes to the prospect when they book. Dynamic placeholders like `{{prospect_name}}` and `{{meeting_time}}` are supported.
* **Meeting reminder**: toggled on by default, sends a reminder email 30 minutes before the meeting. Turn it off if your meeting type already has its own reminder workflow.
The reminder is configured **per location**, not per meeting type. If you reuse one location across five meeting types and turn the reminder off, all five stop sending reminders.
Click **Save** to commit the location. You'll land back on the list view with your new entry at the top.
## Attach a location to a meeting type
A meeting location does nothing until you wire it into a meeting type.
1. Go to **Meeting Types** in the left sidebar and click into the type you want to update.
2. Open the **Meeting Location** accordion section.
3. Choose how to apply locations:
* **Single Method**: pick one location that applies to every booking.
* **Let the prospect choose**: select two or more locations and the scheduler will show the prospect each option as a card.
4. Click **Use a Meeting Location** to open the picker, select your locations, and save the meeting type.
If your account has zero meeting locations, the picker comes up empty. Either create at least one location first or use **Add custom setup** to skip the picker and write an invite directly on the meeting type.
## Edit or delete a location
From the **Meeting Locations** list, click the three-dot menu on any location card. The same accordion form opens with **Update** in the bottom-right instead of Save.
Edits apply to every meeting type using this location and to all **future** bookings. Calendar invites already sent to prospects don't regenerate. If you've moved your office, send a manual update to anyone with an upcoming in-person meeting.
## How meeting locations interact with the rest of RevenueHero
| Surface | Behaviour |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Meeting types | A meeting type references one or more locations. Changing the location on the meeting type takes effect immediately for new bookings. |
| Workflows | Workflow actions can include the location name and address via `{{meeting_location}}` and `{{meeting_address}}` placeholders. |
| CRM activity (HubSpot, Salesforce) | The location name and address sync into the meeting activity record under the standard `location` field. |
| Reschedule and cancellation links | A reschedule re-runs the location lookup. If the meeting type uses **Let the prospect choose**, the prospect can switch to a different location when they reschedule. |
***
Your meeting locations are set up and ready to attach to meeting types. πππ
Wire your new locations into a meeting type so prospects can book them.
Connect Zoom so Video conference locations generate links automatically.
Connect Teams as the conferencing tool for reps on the Microsoft stack.
Connect Google Meet so booked meetings come with a Meet link.
# Nominees
Source: https://help.revenuehero.io/settings/organization/nominees
When a rep goes on vacation, their calendar quietly stops generating slots. The manual fix is painful: pull the rep out of pods, reassign upcoming meetings, hope nobody forgets to put them back. Nominees automate the swap.
A **nominee** is a backup rep you designate per user. While the original rep is unavailable, the scheduler shows the nominee's availability in their place. The original rep still owns the lead in your CRM. Round-robin credits still belong to them. Only the calendar swaps.
## How nominees work
When a prospect lands on the scheduler and the assigned rep is out:
1. RevenueHero detects the rep is unavailable for the requested time
2. The scheduler pulls the **nominee's** availability instead
3. The meeting is booked on the nominee's calendar
4. The original rep stays the **CRM owner** and the **round-robin assignee**
5. The nominee receives the calendar invite and runs the meeting
This is different from reassignment. With reassignment, ownership transfers. With nominees, only the calendar transfers. When the original rep returns, future bookings go straight back to them with no cleanup.
| Behavior | Nominee covers | Reassignment |
| --------------------- | ------------------------------ | ------------------ |
| CRM owner | Original rep | New rep |
| Round-robin credit | Original rep | New rep |
| Calendar invite | Nominee's calendar | New rep's calendar |
| Reverts automatically | Yes, when original rep is back | No, manual change |
## Assign a nominee to one user
### Step 1: Open the Users page
In the left sidebar, click **Settings -> Users**. You'll see your full team grouped by role (Admins, Managers, Members) with a **Nominee** column. Anyone without coverage shows "Not set."
### Step 2: Select the user with the row checkbox
Find the rep you want to set a nominee for and click the checkbox at the start of their row. A floating bar appears at the bottom of the page showing the selected user and an **Update Nominee** button.
The checkbox flow is the fastest path. You don't need to drill into the user's detail page first β selecting the row is enough.
### Step 3: Open the Meeting Nominee modal
Click **Update Nominee** in the floating bar. The **Meeting Nominee** modal opens with the question "Who should take meetings when **\[user]** is unavailable?" The **Assign meetings to a nominee** option is selected by default.
### Step 4: Pick a nominee
Click the **Choose a member** dropdown. The list shows every active teammate, sorted alphabetically. Select the rep who'll cover.
Pick a nominee whose territory and meeting style match the original rep. If your EMEA AE goes out, their nominee should also be EMEA-comfortable. The prospect doesn't see the swap, so the conversation should still feel relevant.
### Step 5: Save and confirm
Click **Save**. A green toast confirms "Users' nominee was updated successfully." The Users list now shows the nominee's avatar and email in the **Nominee** column for that row.
## Bulk-assign nominees
Setting nominees one rep at a time is fine for a small team. For a 50-person team, the same flow works in bulk: just check more rows before clicking **Update Nominee**.
### Step 1: Select multiple rows
Tick the checkbox on each rep you want to update. The floating bar at the bottom updates with each selection: "1 member selected", "2 members selected", and so on, with avatars stacked next to the count.
### Step 2: Open the modal in bulk mode
Click **Update Nominee**. The same **Meeting Nominee** modal opens, but now the question reads "Who should take meetings when **3 users** unavailable?" with the selected reps' avatars stacked. The dropdown automatically excludes everyone in the selection so you can't pick someone as their own backup.
### Step 3: Pick one nominee for everyone selected, then Save
Choose a single teammate to cover the entire selection and click **Save**. The same success toast appears, and every selected row now shows that nominee in the **Nominee** column.
A "go-to" nominee model also works. Some teams designate one or two senior reps as the universal nominee for everyone else. It simplifies coverage decisions and keeps the meeting bar consistent.
**Existing bookings stay where they are.** Nominees only cover *new* bookings made while the rep is out. Meetings already on the original rep's calendar do not auto-reassign. Use the **Reassign** action on each meeting if you want them moved to the nominee.
**Round-robin credits stay with the original rep.** When a nominee covers a meeting, the credit counts toward the original rep's queue position, not the nominee's. This protects fairness, but it means the nominee's actual workload (real meetings on their calendar) won't show up in distribution reports for the original rep's pod.
## When the nominee is also unavailable
If the original rep is out *and* the nominee is also out (vacation overlap, both attending the same offsite), the scheduler skips both and falls back to standard round-robin behavior within the pod or rule. The lead won't sit in limbo, but coverage is only as deep as the chain you set up.
For high-stakes inbound (enterprise, expansion), set nominees on the nominees too. If your top AE is out and their nominee is on PTO the same week, you don't want the lead falling to whoever happens to be next in queue.
## Remove a nominee
1. On the **Users** page, check the row of the rep whose nominee you want to clear (or select multiple rows for bulk removal)
2. Click **Update Nominee** in the floating bar
3. In the modal, choose the **Don't assign any nominee** radio
4. Click **Save**
A red warning confirms what you're about to do: "You're removing the nominee for \[user]. When the user takes time off, their meetings won't be assigned to any backup." The **Nominee** column reverts to "Not set," and the scheduler will skip that rep with no coverage from this point forward.
***
Your team has automatic backup coverage. Vacations stop being a manual scramble, and prospects keep seeing slots while ownership stays clean. πππ
Block whole-team availability on company-wide dates without manual calendar work.
Create one-off availability and unavailability blocks for individual users.
Configure how meetings are distributed across your team's round-robin queue.
Invite, manage, and assign roles to users in your RevenueHero account.
# How to set up custom domain?
Source: https://help.revenuehero.io/settings/organization/scheduler-domain
Give your links your brand's touch by adding a custom domain.
The domain for meeting links can be customized with your domain name in RevenueHero. This domain is used for all the URLs from [Inbound Routers](/routers/inbound/create-inbound-router), [Campaign Routers](/routers/campaign/create-campaign-router),Personal Meeting links and for your meeting's reschedule/cancellation links part of the calendar invite.
1. To update your Custom Domain, head to "**Settings**" from the left navigation menu and click on "**Scheduler Configuration**" under "Organization Settings".
2. Click on "**Get Started**"
3. Enter the customized domain name and click on "**Setup Now**".
The correct format is to add a word before your domain. Eg: if your domain is **[www.revenuehero.io](http://www.revenuehero.io)** an appropriate customization would be **meet.revenuehero.io** or **hello.revenuehero.io**.
4. You will be asked to verify ownership of the domain. Once done, all your links will have your custom domain. In case the domain is down, the fallback domain will be used.
# UTM Parameters tracking in RevenueHero
Source: https://help.revenuehero.io/settings/organization/utm-tracking
Capture UTM parameters when prospects book meeting through RevenueHero
UTM tracking in RevenueHero gives you visibility into campaign performance and attribution. When a visitor arrives through a UTM-tagged link and books a meeting, the parameters are captured and passed to your connected CRM.
# How to set up UTM tracking?
Admins can set up UTM mapping between RevenueHero and the CRM used.
If you pass the UTM parameters as hidden fields in your HubSpot form, RevenueHero passes it on to your CRM. You don't need to set up UTM mapping here. Avoid doing both.
In your RevenueHero dashboard, go to **Settings**. Under **Organization Settings**, click on **Meeting Settings.**
Youβll find a section titled **Mapped UTM Parameters**. Click on **Add UTM Parameters.**
This modal lists the five UTM parameters you can track:
* utm\_source
* utm\_medium
* utm\_campaign
* utm\_term
* utm\_content
Use the toggle beside each parameter to activate tracking for that UTM field.
Only the enabled parameters will be captured and synced with your CRM when a lead books a meeting.
For each active UTM parameter, copy paste the name of the **matching contact field** in your connected CRM.
Once youβve activated and mapped the relevant UTM parameters, click **Save**.
Make sure the UTM fields already exist in your CRM before mapping them. This ensures smooth sync without data loss.
Youβre all set! RevenueHero will now capture UTM parameters for every booked meeting and pass them directly to your CRM.
# How to change my Availability?
Source: https://help.revenuehero.io/settings/personal/my-availability
Need to change your availability? Let's look at how you can edit this.
User Availability is what a specific user configures as their availability in their settings.
Sometimes, you'll have folks working in different time zones. Setting the availability tells RevenueHero their available working hours or available time to take meetings.
This ensures that the appropriate meeting hours are displayed to the prospects.
1. To change your availability, click on "**Settings**" from the side nav bar and click on "**My Availability**" under "**Personal Settings**".
**NOTE**
The availability you see is based on the time zone you set in your [My Profile](/settings/personal/profile).
2. To add slots to a specific day of the week, ensure that it's enabled under the "**Select working days**" section.
3. Select your working hours for each day of the week using the drop-down menu.
If you're going to have similar working hours on all the days, you can set your slots for the first day of the week and click on the "**Copy to all**" button.
4. You can add multiple slots per day by clicking on "**Add slot**" and setting start and end times. Once it's all done, you can click on the "**Save**" button in the bottom right corner.
You should see a confirmation for a successful save. That's it! πππ
# Integrating Calendar and Conferencing Tool
Source: https://help.revenuehero.io/settings/personal/my-integrations
Learn how to integrate RevenueHero user with Google/Outlook Calendar, Zoom, Google Meet, or MS Teams.
You can integrate your account with the following user-level integrations. Each user in your account has to turn on these integrations for themselves. As an admin, you can track what integrations have been done for each user in the [Users page](/settings/organization/manage-users#calendar-and-web-conferencing-integrations)
**NOTE**
At any given point, one can integrate one of the supported calendars and one of the conferences.
And, Google Meet can be only used with Google Calendar and Microsoft Teams with Outlook Calendar.
### Calendars
}
href="/integrations/google-calendar"
>
Steps to integrate with Google Calendar
}
href="/integrations/outlook-calendar"
>
Steps to integrate with Outlook Calendar
### Conferencing tools
}
href="/integrations/zoom"
>
Steps to integrate with Zoom
}
href="/integrations/google-meet"
>
Steps to integrate with Google Meet
}
href="/integrations/microsoft-teams"
>
Steps to integrate with Microsoft Teams
}
href="/integrations/daily"
>
Steps to integrate with Daily
Steps to integrate with a static conference link.
## How does integrating the calendar help?
Every user in RevenueHero must connect their respective Calendars with RevenueHero. This helps with the following --
#### Meeting availability calculation
1. Busy events times will be excluded automagically when showing your available slots to prospect
2. When you have an OOO all-day event on the calendar, you'll be considered to be on vacation
#### Auto-create and manage invites
Meeting invites will be automatically created on your calendar and sent to prospects who book meetings.
# Setting Your Booking Preferences
Source: https://help.revenuehero.io/settings/personal/my-preferences
Set up your default preferences for Relays.
If this option is not visible, contact your admin to add you to a relay (if applicable).
### Accessing Your Preferences
1. Go to **Settings** β **My Preferences**
2. Youβll find options to customise your **Booking Page** and **Booking Form** preferences
## Booking Page
**Preferred Week View**\
Choose how your calendar appears while booking:
* **Work Week**: View only weekdays
* **Full Week**: View all 7 days
**Meeting Time Suggestions**\
Enable **Meeting Time Suggestions** to quickly find optimal meeting times and book with one click.
## **Override Settings**
\
Choose which overrides can be applied during booking, if theyβre available.
* **Override Internal Meetings** β Allows booking over non-RevenueHero meetings on the assigneeβs calendar.
* **Book Outside Working Hours** β Lets you book meetings beyond the assigneeβs defined availability.
## Booking Form
**Preselect a Relay**\
Choose your most frequently used relay to save time while booking.
**Preferred choice for assignee**
* **Assign to Me** β For meetings youβre booking for yourself
* **Book for colleague** β For handoffs to colleagues
**Set Default Timezone**\
Define the timezone you typically book from, and RevenueHero will display the relay in this timezone by default.
# How to change Password?
Source: https://help.revenuehero.io/settings/personal/password
Need to change your password? This article walks you through the steps.
We all forget our passwords from time to time. It happens to the best of us.
If you're still logged in to your RevenueHero account, you can change your password.
Let's see how.
1. To change your password, click on "**Settings**" from the side nav bar and click on "**Change Password**" under "**Personal Settings**".
2. Enter your new password. Your password must be at least 6 characters.
3. Now re-enter the new password under the "**Confirm new password**" field.
4. Click the "**Save**" button to successfully change the password.
# How to set up user profile?
Source: https://help.revenuehero.io/settings/personal/profile
Let's talk about how you can customize your profile to show off your swag.
The My Profile tab lets you customize your profile and make your RevenueHero account truly yours.
## Navigate to My Profile
To make changes to your profile, click on "**Settings**" from the side nav bar and click on "**My Profile**" under "**Personal Settings**".
### Add Profile Picture
Under the Avatar section, click on the avatar to open the file selector.
Choose an image of yourself to set it as your profile picture.
**NOTE**
The image you choose as your avatar will be visible to prospects when they book a meeting with you.
***
### Include Social Links
You can add your Twitter and LinkedIn profile links.
**NOTE**
Add full links to your social profiles.
This will also be visible to prospects when they book a meeting with you. Think of it as an easy way for them to get to know you even before the call.
# RevenueHero Settings
Source: https://help.revenuehero.io/settings/settings-overview
## Personal Settings
Customize your display name, profile picture and add your social handles.
Set a password for your account instead of using SSO to login.
Set your timezone and your working hours within RevenueHero.
Connect your calendar and conference tool to RevenueHero.
Set your default settings while using Relays to handoff meetings.
## Organization Settings
Customize your the organization logo and default timezone.
Manage all your users, their permissions and view their integrations.
Manage all org-level integrations - CRM, Slack, Intercom etc
Manage your enrichment provider integrations in one place.
Manage lists centrally to be used in your routing logic (eg: territories)
Manage your round robin method, cycle and automatic calibration.
Manage meeting settings and centrally map your UTM parameters.
Secure your account by defining login methods and trusted origins.
Customize the scheduler and manage layouts for links.
Customize the domain on any RevenueHero Meeting link.
Customize the domain used for RevenueHero notifications.
# How to add members to a team?
Source: https://help.revenuehero.io/teams/add-members
Add existing users or invite new reps to a team so they can start receiving meetings through round-robin distribution.
Your team is only as useful as the reps on it. When a new hire joins, a rep switches territories, or you're setting up a team for the first time, you need to add them to the right team so distribution rules can assign meetings to them. There are two ways to do this: add an existing RevenueHero user from the team detail page, or invite a brand new user and assign them to a team in one step.
**BEFORE YOU BEGIN**
1. You need **Admin** permissions in RevenueHero to add members
2. New users must be [invited to RevenueHero](/settings/organization/all-users) first, unless you use the invite flow below which handles both steps at once
3. Each rep should [connect their calendar](/settings/personal/my-integrations) after being added. Without a connected calendar, they won't receive any bookings.
## Two ways to add members
| Method | When to use |
| ------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| **Invite Member** from the team detail page | The rep already has a RevenueHero account. You're adding them to this specific team. |
| **Invite icon** from the top navigation bar | The rep is brand new. You want to invite them to RevenueHero and assign them to a team in one step. |
## Add an existing user to a team
Use this when the rep already has a RevenueHero account but isn't on this team yet.
### Step 1: Open the team
Click **Teams** in the left sidebar, then click the team you want to add members to.
### Step 2: Click Invite Member
Click **Invite Member** in the top-right corner. A modal opens with a dropdown listing all RevenueHero users who aren't already on this team.
### Step 3: Select members and add
Search or scroll to find the rep, then select them from the dropdown. You can add multiple members at once. Each selected member appears below the dropdown with a **Remove** link if you change your mind.
Click **Add Members** to confirm.
Check the **Integrations** column after adding. If a rep's row shows no calendar icons, they haven't connected their calendar yet. Reach out and have them go to **Settings > My Integrations** to connect. Until they do, they won't appear as available in the scheduler and won't receive any round-robin bookings. If your team uses Microsoft 365, the rep may need their IT admin to approve the calendar integration before they can connect.
## Invite a new user and add them to a team
Use this when the rep doesn't have a RevenueHero account yet. This sends them an invite email and assigns them to a team in one step.
### Step 1: Click the invite icon
Click the **person-plus icon** in the top-right corner of any RevenueHero page (next to the help and profile icons).
### Step 2: Fill in the invite details
In the **Invite Users** modal:
* **Email**: Enter the rep's work email address. You can add multiple emails to invite several reps at once.
* **Role**: Choose the account-level role (User or Admin).
* **Add to team (Optional)**: Select one or more teams to assign the rep to immediately.
Click **Send Invite**. The rep receives an email to set up their account. Once they accept and connect their calendar, they'll start appearing as available for round-robin.
Double-check the email address before sending. The invite email must match the rep's calendar email exactly. If your company uses Okta or Microsoft SSO, verify the SSO email domain matches their inbox domain (e.g., if Okta uses `@company.com` but Outlook uses `@mail.company.com`, the rep won't be able to connect their calendar). A typo or wrong domain creates a ghost account that occupies a license but never gets activated. Delete the incorrect user from **Settings > Users** and re-invite with the correct email.
## After adding members
Adding a rep to a team doesn't automatically mean they'll receive meetings. What happens next depends on how your distribution rules are configured:
* **All members**: If the distribution rule assigns to all members of the team, the new rep is automatically included in the round-robin queue. No additional setup needed.
* **Selected members**: If the distribution rule only routes to selected members, the new rep won't get meetings until you edit the rule and select them. Go to the distribution rule, expand **Assign Meetings**, and check the new rep's name.
* **Weighted distribution**: If members have custom weights, the new rep is added with equal weight by default. Adjust their weight in the distribution rule if needed.
If you have **New Member Calibration** enabled in **Settings > Distribution**, new reps get priority in the round-robin queue to catch up with teammates who already have meetings booked. This prevents them from sitting idle while the queue cycles through everyone else.
## Member roles
Each team member has a role that controls what they can do within the team:
| Role | Can receive meetings | Can edit availability | Can manage members |
| ---------- | -------------------- | --------------------- | ----------------------- |
| **Member** | Yes | No | No |
| **Admin** | Yes | Yes | Yes (full team control) |
To change a member's role, hover over their row in the members list and click the **edit icon**.
***
Your new reps are on the team. Make sure they connect their calendar, then check your distribution rules to confirm they'll receive meetings. πππ
Set up a new team from scratch with members and availability.
Safely remove reps with distribution rule reassignment.
Control how meetings get assigned to team members.
Connect your calendar and video conferencing tool.
# How to create a team?
Source: https://help.revenuehero.io/teams/create-teams
Group your sales reps into teams so distribution rules can round-robin meetings between them, assign to selected members, or route to a single rep based on conditions.
A team is how you tell RevenueHero "these are the people who can receive meetings." Every distribution rule points to a team, but how meetings get assigned within that team is flexible. You can round-robin across all members, route to a subset of selected members based on conditions, or assign to a single rep for a specific territory or product line. The team is the container; the distribution rule is the logic.
βΉ
**BEFORE YOU BEGIN**
1. [Invite your reps to RevenueHero](/settings/organization/all-users) so they appear as selectable members
2. Each rep should [connect their calendar](/settings/personal/my-integrations) before being added to a team. Without a connected calendar, RevenueHero can't check their availability or create meetings on their calendar.
## How teams work
When a prospect submits a form and reaches your scheduler, RevenueHero evaluates your distribution rules to determine who should get the meeting. Each distribution rule points to a team and specifies how to assign within it:
* **All members**: Round-robin across everyone in the team. The simplest setup.
* **Selected members**: Pick specific reps from the team for this rule. You can create multiple distribution rules pointing to the same team, each routing to different members based on conditions like company size, region, or product interest.
* **Single member**: Select one rep. Useful when a specific territory or product line belongs to one person (e.g., all DACH leads go to Frank, or all CLM product inquiries go to Sahana).
Beyond assignment, teams also control:
* **Availability**: The team's working hours define when prospects can book. This is especially important for multi-region setups where US reps should only show availability during US hours and EU reps during EU hours.
* **Groups**: Sub-groups within a team for collective round-robin (e.g., pair an AE with an SE on every call so the prospect meets both).
* **Roles**: Each member has a role (Admin, Manager, or Member) that controls what they can edit within the team.
## Create a team
### Step 1: Open the Teams page
Click **Teams** in the left sidebar. This shows all existing teams in your account with member count, group count, timezone, and member avatars.
Click **Create Team** in the top-right corner.
### Step 2: Select members
The wizard opens with the question: "Who has to be part of this team?" Search by name or scroll the list and check each member you want to add.
You can add members now or click **Skip for Now** to add them later from the team detail page. Click **Proceed** to continue.
A rep must have their calendar connected before they can receive meetings through round-robin. Adding a rep without a connected calendar means they'll appear in the team but won't get any bookings. This is a common onboarding miss that surfaces as "why isn't this rep getting meetings?" Make sure every rep connects their calendar and conference tool before you go live.
Only add reps who should actually receive meetings from this team. A common mistake is adding yourself (the admin) to a sales team during setup, then wondering why you're getting routed demo calls.
### Step 3: Set the team's availability
Choose when this team can receive meetings. You have three options:
| Option | When to use |
| ---------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Use default availability** | Standard Mon-Fri, 9am-5pm in your account's timezone. Works for most teams. |
| **Use from another team** | Copy availability from an existing team. Useful when creating a second team in the same region. |
| **Use custom availability** | Set specific days and time slots. Use this for teams in different timezones or with non-standard hours. |
The timezone shown is your account's base timezone. You can change the team's timezone later from the team settings.
If you have reps across regions, create separate teams with region-appropriate availability. For example, your EU reps might work 9am-5pm CET, but if they're on a US-facing team, set their custom availability to match the overlap window (e.g., 2pm-10pm CET / 8am-4pm ET). This prevents prospects from seeing irrelevant time slots outside their business hours.
Click **Proceed** to create your team.
## The team detail page
Once your team is created, you land on the team detail page. This is your central view for managing the team.
The page has three sections:
* **Members** (left): All reps on this team with their email, calendar integration status, and role (Admin, Manager, Member). Hover over a member to see edit and remove actions.
* **Groups** (top right): Sub-groups for collective round-robin pairings (e.g., AE + SE pairs). Click **View more** to manage groups.
* **Availability** (bottom right): The team's working hours grid. Click **View** to edit.
From here you can:
* Click **Invite Member** to add new reps
* Click **Settings** to rename the team or change its timezone
* Create groups for collective round-robin setups
## How teams connect to routing
Teams become active when you reference them in your routing setup. The full chain looks like this:
1. **Create a team** (this article) to define who can receive meetings
2. **Create a distribution rule** that points to this team and specifies the assignment logic (all members, selected members, or single rep) and any conditions (company size, region, product)
3. **Attach the distribution rule** to an inbound router, campaign router, or relay
You can create multiple distribution rules that point to the same team, each with different conditions and different selected members. For example, with one "Sales" team of 10 reps:
* **Rule 1**: Leads with fewer than 500 employees go to Evan (single selected member)
* **Rule 2**: Leads with 500 or more employees round-robin among the other 9 AEs (selected members)
* **Rule 3**: Fallback rule round-robins across all 10 members
This is how you build territory or segment-based routing without creating dozens of teams. The team stays simple; the distribution rules handle the logic.
You can also use the same team across multiple distribution rules, routers, and relays. Your "NAM AEs" team might be referenced by your inbound router's distribution rule, your campaign router, and your relay's distribution pod. The round-robin queue is shared across all of them.
## One team or many?
This is the first structural decision you'll make. There's no universal answer, but here's how customers typically approach it:
| Scenario | Recommended structure | Why |
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| 5 AEs, all US, same working hours | One team: "US AEs" | Simple. One distribution rule handles everything. |
| AEs in US + AEs in EMEA | Two teams: "NAM AEs" and "EMEA AEs" | Different availability windows per region. Prevents prospects from seeing 3am time slots. |
| AEs split by segment (Enterprise vs Commercial) across regions | Four teams: "US Enterprise", "US Commercial", "EMEA Enterprise", "EMEA Commercial" | Region x segment matrix gives you clean routing and accurate availability per group. |
| SDRs who hand off to AEs via relay | Two teams: "SDRs" (relay bookers) and "AEs" (relay assignees) | Relays need separate teams for the booker and assignee side. |
| One AE owns a specific territory | One team, but use a distribution rule with a condition that routes to that single selected member | You don't need a separate team for one person. Put them on the main team and use distribution rule conditions. |
| AE + SE on every call | One team with groups: create an "AE-SE Pairs" group using collective round-robin | Groups within a team handle multi-rep meetings without needing separate teams. |
Resist the urge to create a separate team for every distribution rule condition. If 10 reps are on the same schedule and in the same region, they belong on one team. Use distribution rule conditions and selected members to control who gets what. Creating too many small teams makes round-robin queues shallow and team management harder.
***
Your team is ready. Next, create a distribution rule to define how meetings get assigned to the reps on this team. πππ
Add or invite new reps to an existing team.
Set up round-robin to assign meetings to your team.
Individual reps can customize their personal availability within the team schedule.
Safely remove reps from a team with rule reassignment.
# How to remove members from a Team?
Source: https://help.revenuehero.io/teams/remove-members
In this article, we'll walk you through the steps on how you can remove members from your team.
**NOTE**
Only users with Manager or Admin permissions can remove a user from the team.
1. Navigate to the team youβd like to remove a new member from. To do this, use the side nav bar to click on **Settings β select Teams** under the Organization section.
2. Select the β**Team**β youβd like to remove the member from.
3. Under the Members tab, youβll see a list of all the existing members in this team. Hover your mouse over the team member you'd like to remove and click on the trash icon that's on the right end.
4. From the remove pop-up, click on "**Yes, I understand**" to remove the selected member. Click "**Cancel**" to keep the member on your team.
5. If you choose to remove the member from the team, you'll be prompted with the list of rules that the user is part of, so you're able to configure who those meetings should get assigned to.
6. To confirm, you'll be prompted to enter the name of the user you're trying to remove. Please type the user's name in the text box and click "**Delete**".
# How to create a Meeting Type?
Source: https://help.revenuehero.io/type/create-meeting-type
Customize your meeting configuration like duration, buffers and invite texts for your meetings in a few simple steps
Meeting 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,** you might want to have different meeting types for:
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.
4. Book meetings from an offline event.
It also lets you create personalized calendar invites and reminder templates that can be sent based on the type of meeting booked.
**Hereβs how the different meeting types work and when to use each.**
| **Meeting Type** | **What itβs for** |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Book meetings with default availability | Uses your standard availability settings (personal or team). Ideal for everyday use, like website booking forms and scheduling links. |
| Book meetings for an event | Purpose-built for event-specific availability. Let's you show calendars only for the event days, and control whether reps can take meetings from other sources during the event. |
| Book meetings with custom availability | Lets you set unique availability independent of your default schedule. Perfect for special cases like support calls, onboarding, or implementation sessions on specific days. |
**Ready to set them up? Hereβs how you can create each meeting type**
When these meeting types are used, the times shown to prospects reflect your 'members' or 'teams' availability and any other settings.
These meeting types are for booking meetings with prospects/customers at an event your company is attending. The scheduler shows only the specified event dates and times for the members added to this meeting type.
These types are for specific days/times of the week. For instance, use this for onboarding calls on Tuesdays and Thursdays.
# How to create a meeting type with custom availability?
Source: https://help.revenuehero.io/type/custom-availability-meeting-type
Customize your meeting configuration like duration, buffers and invite texts for your meetings in a few simple steps
Meeting types allow you to define the different types of meetings you want your customers to be able to schedule with your sales team.
## Steps to Create a Recurring Meeting Type
### Navigating to Meeting Type
1. To create a Meeting Type for an event, use the side nav bar and click on Types -> β**Create a Meeting Type**β button.
2. Select β**Book meetings with custom availability**β to begin the creation of the meeting type
### Set Schedule
You can set custom availability by specifying availability for particular days of the week, creating a recurring meeting pattern.
For example, if your implementation team takes kick-off calls on Mondays, Wednesdays and Fridays, you can set a custom availability only for these days.
### Set Duration
Duration defines how long your meeting will last.
Under the β**How long will this meeting last?**β section, use the dropdown to set your meeting duration. Your meeting duration can range between 15 minutes to 2 hours.
### Set Buffer Times
Buffer time is the time gap that you can give your reps before two meetings.
RevenueHero can automatically block this extra time before and after a meeting. This way, reps have enough time to usually wrap up, prepare, or just take a breather before/after a meeting.
### Configure greeting message
You can change what text prospects see on the scheduler when they try to book a demo with you.
Use the text field under the βGreeting Textβ field to change how youβd like to greet your prospects.
### Days to show on the widget
Under the β**What days should we show?**β section, you can select between showing all calendar days on the widget vs showing only the days where slots are available.
Show all calendar days: Prospects will also see the days when meeting slots arenβt available. For example, if none of your sales reps work on the weekends, your prospects will also see those days on the scheduler. However, when they select that specific day, they will not see any time slots for them to book.
Only show days with available slots: Prospects will see only the days where there is at least one meeting slot available. If no meeting slots are available on a specific day, your prospects will not see this day in the scheduler.
### Choose the number of future days to display
Under the βShow how many days into the future for booking?β section, you can select the number of days your prospects see on the widget without having to scroll horizontally.
You can choose between 2 days, 3 days, 4 days, or 5 days if you pick to show only days with available slots.
You can choose between 2 weeks, 1 month, 45 days, or 3 months if you pick to show all the calendar days.
### When can the next meeting get assigned?
Under the βWhen can the next meeting be assigned?β section, you can control when the first available slot is shown to your prospect. Is it the next available slot or is it offset after a certain time?
This setting gives admins control on how to space out meetings from current booker time.
For example, you might want to give your sales team at least a dayβs worth of time before the meeting is booked so that they can prepare collaterals if required.
### Choose how time slots should be shown
Time slots displayed to your prospects can be shown in increments of 15 minutes, 30 minutes, or 60 minutes.
For example, if you choose increments of 15 minutes, your prospects will see the following time slots:
1. 9:00 am
2. 9:15 am
3. 9:30 am
4. 9:40 am
and so on.
### Customize invite email
You can customize the content of the calendar invitation that gets sent to the customer based on your companyβs branding and communication style.
You can include tokens in the invite to make the invitation email more suited to the prospect who booked the meeting.
Click the βNextβ button after youβve customized your invite email.
### Customize reminder email
You can choose to send one reminder email (or not send it) before your call begins. You can customize its contents and ensure you have higher chances of people showing up for your demo calls.
**Note**
You can create multiple reminders using RevenueHeroβs workflows.
Click the βCreate a Meeting Typeβ button after youβve customized your reminders.
Thatβs it! Youβve successfully created a new Meeting Type. πππ
# How to create a meeting type with default availability?
Source: https://help.revenuehero.io/type/default-availability-meeting-type
Customize your meeting configuration like duration, buffers and invite texts for your meetings in a few simple steps
Meeting types allow you to define the different types of meetings you want your customers to be able to schedule with your sales team.
## Steps to Create a Meeting Type for Default Availability
### Navigating to Meeting Type
1. To create a Meeting Type, use the side nav bar and click on **Types** -> "**Create a Meeting Type**" button.
2. Give your Meeting Type a name under the "**What would you like to call this type of meeting**" section.
For example, if you're creating this Meeting Type for your SDR teams to qualify prospects, you can name it `Overview Meeting`.
***
### Set Duration
Duration defines how long your meeting will last.
Under the "**How long will this meeting last?**" section, use the dropdown to set your meeting duration. Your meeting duration can range between 15 minutes to 1 hour.
This tells RevenueHero to send a meeting invite to your prospects for the duration you set.
***
### Set Buffer Times
Buffer time is the time gap that you can give your reps before two meetings.
RevenueHero can automatically block this extra time before and after a meeting. This way, reps have enough time to usually wrap up, prepare, or just take a breather before/after a meeting.
**For example,** if you have a 30-minute meeting and set a 15-minute Buffer before and after the meeting, your calendar will be blocked for 60 minutes in total; 15 minutes before the call, 30 minutes for the call and 15 minutes after the call.
In this example, even if your meeting duration is only 30 minutes, 60 minutes of free time in your calendar is required to display meeting slots, as the buffer times are also taken into consideration while showing the available slots to your prospects.
**NOTE**
Buffer time is meeting-type specific and can be tweaked for each of your meetings, differently.
Under the "**How long will this meeting last?**" section, use the drop-down to set buffer times before a meeting and after a meeting. The Buffer times can range between 0 minutes to 30 minutes.
While you can set 0 minutes of buffer, it's important to remember that sometimes meetings tend to not finish on time. Having some buffer time helps ensure prospects on the next call don't wait for too long.
It's also important to remember that the long your buffer times, the lesser meeting slots available for your prospects to book meetings on your rep's calendar.
***
### Configure Meeting Type
Configuring Meeting Type involves choosing availability between team vs members, changing your greeting text, and selecting how far into the future you want to display your calendar slots.
Let's look at each of them one by one.
#### Choose how time slots should be shown
Time slots displayed to your prospects can be shown in increments of 15 minutes, 30 minutes, or 60 minutes.
"**For example,**" if you choose increments of 15 minutes, your prospects will see the following time slots:
1. 9:00 am
2. 9:15 am
3. 9:30 am
4. 9:40 am
and so on.
#### Choose how to display slot availability
Under the "**Inherit availability from**" section, you can choose between "**Team**" and "**Members**".
Meeting slots displayed are based on the availability that you have configured for the [Team created](/teams/create-teams) inside RevenueHero. With this logic, available slots displayed to prospects will be only within the [Team Availability](/teams/create-teams#set-teams-availability) hours.
Meeting slots are displayed based on the available hours that are configured by the individual user. With this logic, only meeting slots available in the user's configured [Available Hours](/settings/personal/my-availability) will be displayed to the prospect.
**RECOMMENDED**
Set team-based availabilities to your meeting types to provide a consistent experience for your prospects and customers.
#### Configure greeting message
You can change what text prospects see on the scheduler when they try to book a demo with you.
Use the text field under the "**Greeting Text**" field to change how you'd like to greet your prospects.
#### Days to show on the widget
Under the "**What days should we show?**" section, you can select between showing all calendar days on the widget vs showing only the days where slots are available.
**Show all calendar days**: Prospects will also see the days when meeting slots aren't available. For example, if none of your sales reps work on the weekends, your prospects will also see those days on the scheduler. However, when they select that specific day, they will not see any time slots for them to book.
**Only show days with available slots**: Prospects will see only the days where there is at least one meeting slot available. If no meeting slots are available on a specific day, your prospects will not see this day in the scheduler.
#### Choose the number of future days to display
Under the "**Show how many days into the future for booking?**" section, you can select the number of days your prospects see on the widget without having to scroll horizontally.
You can choose between 2 days, 3 days, 4 days, or 5 days.
#### When can the next meeting get assigned?
Under the "**When can the next meeting be assigned?**" section, you can control when the first available slot is shown to your prospect. Is it the next available slot or is it offset after a certain time?
This setting gives admins control on how to space out meetings from current booker time.
**For example,** you might want to give your sales team at least a day's worth of time before the meeting is booked so that they can prepare collaterals if required.
***
### Customize invite email
You can customize the content of the calendar invitation that gets sent to the customer based on your company's branding and communication style.
You can include tokens in the invite to make the invitation email more suited to the prospect who booked the meeting.
Click the "**Next**" button after you've customized your invite email.
***
### Customize reminder email
You can choose to send one reminder email (or not send it) before your call begins. You can customize its contents and ensure you have higher chances of people showing up for your demo calls.
**NOTE**
You can create multiple reminders using RevenueHero's workflows.
Click the "**Create a Meeting Type**" button after you've customized your reminders.
***
That's it! You've successfully created a new Meeting Type. πππ
# How to create a meeting type for events?
Source: https://help.revenuehero.io/type/events-meeting-type
Customize your meeting configuration like duration, buffers and invite texts for your meetings in a few simple steps
Meeting types allow you to define the different types of meetings you want your customers to be able to schedule with your sales team.
## Steps to Create a Meeting Type for Events
### Navigating to Meeting Type
1. To create a Meeting Type for an event, use the side nav bar and click on **Types** -> β**Create a Meeting Type**β button.
2. Select β**Book meetings for an event**β to begin the creation of the meeting type
***
### Set the Event Schedule
1. Select the timezone and the dates for your event. You can choose specific days or a specific range of days for the event. (This tells RevenueHero that only these days are available for the event.)
2. After setting the event dates, you can specify the availability for those days. Alternatively, you can also allow participants to set their availability for the event by checking the box.
### Adding Members and Configuring the Ability to Block Other Meetings
1. Add the members who will be attending the event by clicking on β**Add members**"
2. After adding the members, there will be two options: block other meetings for the members on the dates you have selected or allow other types of meetings. Based on your requirement pick one.
For example, if you picked to allow other meetings, then during the event they can also get meetings booked through your website booking page. If you choose to not allow other meetings, as the name suggests it will prevent meetings from other sources from getting booked during the event days for the members added to the event.
### Set Duration
Duration defines how long your meeting will last.
Under the β**How long will this meeting last?**β section, use the dropdown to set your meeting duration. Your meeting duration can range between 15 minutes to 2 hours.
This tells RevenueHero to send a meeting invite to your prospects for the duration you set.
### Set Buffer Times
Buffer time is the time gap that you can give your reps before two meetings.
RevenueHero can automatically block this extra time before and after a meeting. This way, reps have enough time to usually wrap up, prepare, or just take a breather before/after a meeting.
### Configure greeting message
You can change what text prospects see on the scheduler when they try to book a demo with you.
Use the text field under the βGreeting Textβ field to change how youβd like to greet your prospects.
### Choose how time slots should be shown
Time slots displayed to your prospects can be shown in increments of 15 minutes, 30 minutes, or 60 minutes.
For example, if you choose increments of 15 minutes, your prospects will see the following time slots:
1. 9:00 am
2. 9:15 am
3. 9:30 am
4. 9:40 am
and so on.
### Customize invite email
1. You can customize the content of the calendar invitation that gets sent to the customer based on your companyβs branding and communication style.
2. You can include tokens in the invite to make the invitation email more suited to the prospect who booked the meeting.
3. Click the βNextβ button after youβve customized your invite email.
\###Customize reminder email
You can choose to send one reminder email (or not send it) before your call begins. You can customize its contents and ensure you have higher chances of people showing up for your demo calls.
**NOTE**
You can create multiple reminders using RevenueHeroβs workflows.
Click the βCreate a Meeting Typeβ button after youβve customized your reminders.
Thatβs it! Youβve successfully created a new Meeting Type. πππ
# Setting Up Meeting Type Sync Between RevenueHero and HubSpot
Source: https://help.revenuehero.io/type/hub-spo
Link your RevenueHero meeting types to HubSpot so every booked meeting is categorized automatically.
Your team runs different types of meetings every day. Intro calls, product demos, pricing discussions. But when those meetings land in HubSpot without a meeting type, they all look the same. The Meeting Type field shows "None," and HubSpot has no way to tell whether that meeting was a first touch or a deep-dive demo.
By linking your RevenueHero meeting types to their HubSpot counterparts, every booked meeting gets categorized correctly inside HubSpot. That means accurate tracking, reliable workflow triggers, and dashboards you can actually trust.
## Why this matters
Once meeting types sync correctly between RevenueHero and HubSpot, you unlock three key capabilities:
* **Workflow automation** β Trigger actions in HubSpot based on the type of meeting booked. Automatically create a deal after a demo, send a follow-up email after a pricing discussion, or notify your onboarding team after an implementation call.
* **Accurate reporting** β Build dashboards that show demos booked per rep, total intro calls this month, or conversion rates from intro call to demo. Without meeting type data, these reports are impossible.
* **Sales process visibility** β Sales and CS teams can quickly see the purpose of each meeting in a contact's timeline without opening every activity to check.
## What happens without the sync
| Scenario | Meeting Type in HubSpot |
| ---------------------------------- | ------------------------------------------------------------------------- |
| Meeting types **not linked** | Shows as "None" - no categorization, no automation |
| Meeting types **linked correctly** | Auto-populates with the correct type (e.g., `Intro Call`, `Product Demo`) |
# Security settings overview
Source: https://help.revenuehero.io/untitled-page
Control who can sign into your RevenueHero account, which login methods they use, and which websites are allowed to embed your scheduler.
Two questions sit behind your RevenueHero security settings: who is allowed into your account, and where is your scheduler allowed to run. The Security page answers both from one place. It controls account access (who can sign up, how they log in) and embedding (which of your domains can host the booking widget). This page walks through each section so you know what every control does before you change it.
**BEFORE YOU BEGIN**
Security settings are account-wide and affect every member. Changes here can lock people out or block your live scheduler, so review each section before saving.
## Open Security settings
In the left sidebar, click **Settings β Security**.
The page is made of four cards. Each one opens its own modal when you click **Edit**.
## Who can sign up to your account
Controls whether anyone can create an account under your organization or only people you invite. Click **Edit** to choose between open signup and invite-only, and to set a domain allowlist so only addresses on your company domains can join.
Use invite-only with a domain allowlist when you want tight control over who becomes a RevenueHero user.
## Login methods
Sets how your members authenticate: password, Google SSO, Microsoft SSO, or Okta. Click **Edit** to turn methods on and off. At least one method must stay enabled.
For the full walkthrough, see [Login methods](/settings/security/login-methods). To provision through Okta, see [Set up Okta](/settings/security/okta).
## Trusted Origins
Controls which websites are allowed to embed your scheduler. This works as an allowlist: click **Add trusted origins** and enter each site's full origin URL (for example `https://www.yourcompany.com`). Once you've added at least one origin, scheduling is allowed only from those origins, and a submission from any other domain is blocked.
Here's the behavior to understand: when no trusted origins are specified, RevenueHero allows submissions from **any** domain. The moment you add your first origin, you switch from "any domain" to a strict allowlist of exactly the origins you listed.
Add every domain and subdomain your forms live on, including staging and landing-page subdomains. A scheduler that works on your main site but fails on a campaign subdomain is almost always a missing trusted origin.
Leaving Trusted Origins empty means any website can embed your booking widget, since no allowlist is enforced. Add your real domains to lock embedding down to the sites you control, but make sure you've listed every domain your forms run on first, or you'll block your own live scheduler.
***
That is the Security page. Account access on the left, scheduler embedding on the right, all in one place. πππ
Turn password, Google, and Microsoft sign-in on or off.
Provision access through your Okta tenant.
Invite users and manage their access.
Set what each role is allowed to do.
# How to integrate RevenueHero with Custom HTML forms?
Source: https://help.revenuehero.io/web-forms/custom
Integrate RevenueHero's scheduler with your Custom HTML form in 4 simple steps
RevenueHero works easily with your custom HTML forms on your landing pages. These steps will show you how to set up RevenueHero widget with your form to convert demos quickly with the Inbound Router!
1. Identify the unique form identifier for your custom HTML Form
2. Set up an [Inbound Router](/routers/inbound/create-inbound-router) in RevenueHero with the form identifier in your form mapping
3. Copy the [installation script](/routers/inbound/create-inbound-router#install-the-script) from the final step of the router set up.
```javascript Sample installation script theme={null}
```
4. Paste the snippet below your custom HTML form or just before the `` tag on your landing page
That's it. You're ready to start converting your Demo Meetings ππ
# How to integrate RevenueHero with Gatsby forms?
Source: https://help.revenuehero.io/web-forms/gatsby
Integrate RevenueHero's scheduler with your Gatsby form in 4 simple steps
1. Go to your landing page with your Gatsby form and find your form's identifier which, for example here is `#gform_16`
2. Set up an [Inbound Router](/routers/inbound/create-inbound-router) in RevenueHero with the form identifier in your form mapping
3. Copy the [installation script](/routers/inbound/create-inbound-router#install-the-script) from the final step of the router set up.
```javascript Sample installation script theme={null}
```
4. In your Gatsby form component code, add the following code to integrate RevenueHero widet on your form submission
```typescript theme={null}
import { Script } from 'gatsby'
```
4. Go to your Gravity Forms account and navigate to your landing page by going to **Sidebar** -> **Pages** -> *Landing Page* -> **Edit**
5. Toggle the **Block Inserter**, scroll to **Widgets** and add **Custom HTML** to the bottom of the page. Paste the RevenueHero installation script in it and click **Update** on top-right corner to persist changes
That's it. You're ready to start converting your Demo Meetings ππ
# How to integrate RevenueHero with your Legacy HubSpot form?
Source: https://help.revenuehero.io/web-forms/hubspot
Get meetings booked right after your HubSpot Form submit.
Integrate your Legacy HubSpot form with RevenueHero and allow your qualified prospects to book meetings with the right sales reps right after the form is submitted.
### Integrating RevenueHero with Legacy HubSpot forms
Follow these steps to integrate your RevenueHero scheduling widget with your Legacy HubSpot form.
**In HubSpot**:
1. In HubSpot, navigate to the form that you would like to integrate with your RevenueHero scheduler.
2. Edit the form, and click on the *Options tab*.
3. In the **What should happen after someone submits the form?** section, choose **Display a thank you message**.
5. Update your HubSpot form settings.
That does it for changes in your HubSpot account. Once you've made these changes, you can setup RevenueHero to display the scheduler for every qualified form fill.
**In RevenueHero**:
1. Setup your [Inbound Router](/routers/inbound/create-inbound-router).
2. Type your HubSpot form selector ID as the form selector when [mapping your web form fields](/routers/inbound/mapping-your-form). You'll be able to construct your HubSpot selctor ID in the following ways:
1) In your HubSpot account, click Edit on the form that you're looking to map with RevenueHero.
2) In the URL, you'll find the form ID.
3. Add hsForm\_ to the start of the form ID.
If your Form ID is **9918da4c-d12f-47e6-9131-4f938a372ae1**
Then your Selector ID is **hsForm\_9918da4c-d12f-47e6-9131-4f938a372ae1**
4. You can pick the form field names by editing the form and clicking on the specific field.
5. In your form mapping, you can add the field name you copied to the first box and map it to the right Hubspot field on the right side.
1. Navigate to the webpage where your HubSpot form is embedded.
2. On the page, right click and select inspect element.
3. Click on the Element selector in the developer panel.
4. With the selector click on the first field on your Hubspot form on the page.
5. In your developer window, you'll find the Hubspot selector ID, in the format below -
**On your website/page that contains the HubSpot form**
1. Once you've [configured a router](/routers/inbound/create-inbound-router), copy the router installation snippet.
2. In the page where you've embedded the Hubspot form, copy the widget installation snippet before the last `` tag.
3. Publish the script to your page.
That should do it! Prospects who are qualified through RevenueHero will now see the scheduler, when they submit your HubSpot form!
# HubSpot Form Mapping
Source: https://help.revenuehero.io/web-forms/hubspot-newform
Connect your form submissions directly to your inbound routing workflows.
# Integrating Hubspot forms with RevenueHero
Integrating HubSpot forms to RevenueHero is essential for form submissions to be instantly captured, qualified, and routed to the right sales rep. It lets you use form field inputs as routing conditions and trigger the right scheduling flow based on the rules you set up in the inbound router.
## How to Map HubSpot Form in RevenueHero
## In HubSpot
Ensure the form youβd like to integrate with RevenueHero is set to **Show thank you message** upon submission. You can set this up while creating the form, or to check if an existing form is set up appropriately:
* On your HubSpot portal, navigate to **Marketing** -> **Forms**
* Hover over the name of the form β Click **Edit**
* Navigate to **Contents**
* Scroll down to **On Submit**
* Set it to **Show thank you message**
**Save** your form settings or **Review and update** if you made any changes to an existing form.
You have now completed the setup required in HubSpot. Next, youβll map this form to a RevenueHero inbound router.
## **In RevenueHero**
[Set up your inbound router](create-inbound-router).
You can find the Selector ID of the HubSpot form you want to map in two ways.
* Click on the form you want to map, the URL contains the **Form Id**.Β
* Construct the **Selector ID** by prefixing **hsForm\_** to your Form ID
If your Form ID is\
`9918da4c-d12f-47e6-9131-4f938a372ae1`\
Then your Selector ID is\
`hsForm_9918da4c-d12f-47e6-9131-4f938a372ae1`
* Go to the webpage where your HubSpot form is embedded.
* Right-click β Select **Inspect Element**
* Click the **Element Selector** in the developer panel.
* Select the first field on your HubSpot form.
* In the developer window, locate the HubSpot selector ID (format shown below).
In the **Map Form Fields** panel, add all your mandatory fields and any other form field that will be used in the distribution logic.
* Make sure to map the **Form field name** and **Contact field in HubSpot** entries accurately.
* **Form field name** is the combination of **"Object Type Id/Hubspot internaI name"**. **Contact field in HubSpot** is the name of the HubSpot property that is populated with the input from the field.
* To find a fieldβs **HubSpot internal name:**
* Click the field in the form.
* Go to **Options** β Copy the **Internal name**
* Observe the **Object Type** to identify the relevant **Object Type Id**
Object Type IDs for the most common Object types are:
* `0-1` β Contact objects
* `0-2` β Company objects
* `0-3` β Deal objects
* You now have the **Form field name** for all the fields you wish to map with the router by concatenating the **Object Type Id/HubSpot internal name**.
* Once you are done adding all the relevant fields, hit **Save**. π Youβve successfully mapped your HubSpot form to RevenueHero!
On your website or page containing the HubSpot form:
* Copy the **Router Installation Snippet** from RevenueHero.
* Paste the **Widget Installation Snippet** before the closing ``**tag** .
* Publish the page.
Thatβs it! Prospects who qualify through RevenueHero will now see the scheduler immediately after submitting your HubSpot form.
# How to integrate RevenueHero with your Intercom widget?
Source: https://help.revenuehero.io/web-forms/intercom
Integrate RevenueHero's scheduler with your Intercom widget in 6 simple steps
**NOTE**
Youβll need admin access in RevenueHero to set up the Intercom integration with RevenueHero.
### RevenueHero setup
1. [Set up a new router](/routers/inbound/create-inbound-router) in RevenueHero, maybe with a distribution rule that checks whether the **email is not empty** and assigns the meeting to the team that should get the meetings coming in through RevenueHero.
2. Share the Router ID with the RevenueHero team. (This is to enable contact creation in your CRM for new contacts who book meetings through Intercom and might not be part of your CRM yet).
### Intercom setup
1. Login into your Intercom account.
2. Open [https://developers.intercom.com](https://developers.intercom.com) in a new tab.
3. Click on **Your apps**.
4. In the list of apps, click on **New app** to create a custom app and click on **Create app**.
5. In the configure section in the app, click on **Canvas kit**.
* Under **Configure app capabilities**, click on **For users, leads and visitors**.
* In the locations where you would like RevenueHero displayed, choose **Messenger**.
6. In the Webhook URLs, paste the following and save --
* Under **Initialise**
**NOTE**
Replace `{{rh-router-id}}` with your actual Router ID from Step #1 of RevenueHero setup
* Under **Submit flow webhook URL**
`https://intercom-three.vercel.app/api/submit`
7. The Router ID in the URL determines which teamβs availabilities are shown in the scheduler.
Thatβs it! Your Intercom integration is set up. πππ
Take it out for a spin by doing a test submit and checking your routing logs to see if it works as intended.
# How to integrate RevenueHero with Jotform forms?
Source: https://help.revenuehero.io/web-forms/jotform
Integrate RevenueHero's scheduler with your Jotform form in 4 simple steps
1. Identify the unique form identifier for your Jotform form which will be inside an Iframe for an embedded Jotform. We'll use the Iframe's name which will be something like `222354402406041`. For Jotform forms, we'll use the identifier as `iframe[name="222354402406041"]`.
2. Set up an [Inbound Router](/routers/inbound/create-inbound-router) in RevenueHero with the form identifier in your form mapping
3. Copy the [installation script](/routers/inbound/create-inbound-router#install-the-script) from the final step of the router set up.
**NOTE**
When adding the RevenueHero script, make sure that that **form\_type: "jotForm"** is present.
```javascript Sample installation script theme={null}
const hero = new RevenueHero({ routerId: '666', formType: 'jotForm' });
hero.schedule('iframe[name="222354402406041"]'); // Use Iframe name here
```
4. In your landing page HTML, paste the RevenueHero widget script before `` tag and save.
That's it. You're ready to start converting your Demo Meetings from your landing page ππ
# How to integrate RevenueHero with Marketo?
Source: https://help.revenuehero.io/web-forms/marketo
Integrate RevenueHero's scheduler with your Marketo form in 2 simple steps
RevenueHero's scheduling snippet integrates Natively with Marketo forms. The first step to trigger RevenueHero's scheduler after Marketo's form fill is to copy your router snippet.
When configuring the inbound router, use your Marketo form ID as the form selector. This autogenerates a scheduling snippet that works natively with your Marketo form.
#### 1. Generating the scheduling snippet
To do this, navigate to Routers -> Inbound router -> Edit the router that you would like to trigger after your form -> Click on the Widget Installation tab.
Copy the scheduling snippet.
```javascript Sample installation script theme={null}
```
#### 2. Installing the scheduler
Paste the scheduling snippet after your Marketo form snippet on the page.
RevenueHero's native scheduling snippet listens to your Marketo form data and triggers the scheduler depending on your distribtion rules configured in your app.
By mapping the marketo form ID to your router, RevenueHero automatically listens to the right form submit even if your page has multiple marketo forms.
Once a meeting is booked, the event details are synced with your CRM as a activity/engagmenet depending on whether you use Salesforce or Hubspot.
RevenueHero doesn't interfere with any of your attribution or data workflows from Marketo. Marketo collects the lead information and creates your lead record in Salesforce per usual. RevenueHero listens to form fill, and displays the scheduler to the user.
The details of the booked meeting is automatically synced against the created lead's associated event.
# How to map your web form in RevenueHero?
Source: https://help.revenuehero.io/web-forms/overview
Mapping your web form allows RevenueHero to use each field in your form as routing conditions.
Mapping your lead intake form is the first step in setting up your distribution workflows in RevenueHero. The mapping allows RevenueHero to use each one of your form input fields (visible and hidden) as conditions in routing rules.
**NOTE**
RevenueHero only listens to the form submission to trigger the scheduling widget. It does not interfere with any of your existing data or current form functions.
To map your form:
1. In the navigation panel, click on **Inbound β Forms**.
2. Click on Add new form
3. Name your form mapping to ensure that youβre able to recollect which form was mapped
4. In the form selector field add the selector ID of your form. (This can be found by inspecting your form on the page and looking up the form id associated with it). This is required for RevenueHero to know which form submission to listen to, before triggering the scheduling widget.
For specific instructions for your webform, here are some form providers that we work with:
Contact us at [support@revenuehero.io](mailto:support@revenuehero.io) if you don't find your form provider on this list.
RevenueHero is form agnostic and can work with any form - we'll be quick to add help documentation for your provider.
Click here to understand how to work with a custom form.
# How to integrate RevenueHero with Pardot?
Source: https://help.revenuehero.io/web-forms/pardot
Integrate RevenueHero's scheduler with your Pardot form in 10 simple steps
RevenueHero's scheduling snippet integrates natively with Pardot forms and works with both instances --
1. Where the Pardot form is used as in a Pardot landing page (**Native Pardot form installation**)
2. Where the Pardot form is embedded in any page (**Iframe Pardot form installation**)
**NOTE**
When adding the RevenueHero script, make sure that that **form\_type: "pardot"** is present.
`new RevenueHero({ routerId: '', formType: 'pardot' })`
These steps help setup the RevenueHero scheduler for a Pardot form embedded in a Salesforce Landing Page.
**In RevenueHero**:
1. Setup your [Inbound Router](/routers/inbound/create-inbound-router).
2. Choose `#pardot-form` as the form selector when [mapping your web form fields](/routers/inbound/mapping-your-form).
**In Salesforce**:
1. In Salesforce, navigate to **Account Engagement** from the switcher.
2. Navigate to **Forms** by clicking on **Content** tab -> **Forms**
3. Choose the form that should trigger scheduler, and click **Edit Form**
4. Navigate to **Step 4 - Completion Actions**, and choose **Thank you content** tab.
5. Click on the **Script icon** in the editor and add the source script tag alone.
```javascript RevenueHero source script theme={null}
```
6. Scroll down and click on **Confirm & Save** to persist changes.
7. Navigate to **Landing Pages**, choose the landing page where widget should be displayed, and click **Edit landing page**
8. Navigate to **Step 4 - Landing Page Content**
9. Click on script icon, and add full RevenueHero widget installation script
The script below depicts the native RevenueHero widget installation script for Pardot forms. If you're copying the snippet below, all you need to do is add your router ID to the snippet.
```javascript RevenueHero widget installation script example theme={null}
```
10. Scroll down and click on **Confirm & Save** to persist changes
Open you landing page in a new tab and submit the form to see the scheduler in action. And, that's it! ππ
These steps help setup the RevenueHero scheduler for a Pardot form embedded in a custom web page outside of Salesforce.
1. In Salesforce, navigate to **Account Engagement** from the switcher.
2. Navigate to **Forms** by clicking on **Content** tab -> **Forms**
3. Choose the form that should trigger scheduler, and click **Edit Form**
4. Navigate to **Step 3 - Look and Feel**, and choose **Below Form** tab.
5. Click on the **Script icon** in the editor and add full RevenueHero widget installation script
```javascript RevenueHero widget installation script example theme={null}
```
5. Navigate to **Step 4 - Completion Actions**, and choose **Thank you content** tab.
6. Click on the **Script icon** in the editor and add full RevenueHero widget installation script
```javascript RevenueHero widget installation script example theme={null}
```
7. Scroll down and click on **Confirm & Save** to persist changes
8. Then add full RevenueHero widget script on the website page that should display the scheduler (this is outside of SF on any CMS/website of choice)
Open you landing page in a new tab and submit the form to see the scheduler in action. And, that's it! ππ
# How to integrate RevenueHero with Typeform?
Source: https://help.revenuehero.io/web-forms/typeform
Get meetings booked right after your typeform submissions
Integrate your typeforms with your RevenueHero scheduler to ensure that every form submit triggers your scheduling widget to book meetings with the right sales rep instantly.
### Integrating RevenueHero with Typeform
Follow these steps to integrate your RevenueHero scheduling widget with your form built on Typeform.
**In Typeform**:
1. In Typeform, edit the form that you would like to integrate with your RevenueHero scheduler.
2. In the endings, choose Redirect to URL.
3. In the redirect URL, choose type in the URL to which you want redirect users after a successful form submit.
4. Along with the URL, include the form values as query parameters. You can choose to add all the form values or just the ones that you use as criteria to distribute your meetings.
**Note**
Name and Email are mandatory parameters for RevenueHero.
5. Save your typeform settings.
That does it for changes in your Typeform account. Once you've made these changes, you can setup RevenueHero to show the scheduler for every qualified form fill.
**In RevenueHero**:
1. Setup your [Inbound Router](/routers/inbound/create-inbound-router).
2. Type your typform ID as the form selector when [mapping your web form fields](/routers/inbound/mapping-your-form). You'll find your Typeform ID in the URL of your typeform when you're editing your typeform.
**On the page to which your prospects are redirected**
1. Once you've [configured a router](/routers/inbound/create-inbound-router), copy the router ID. You'll find this in the widget installation section of your router.
2. In the page to which you're redirecting prospects who submit the typeform you configured in the steps above, copy the code below at the end of all the existing code on the page.
```javascript RevenueHero scheduled script for typeform (paste the router ID from step 1) theme={null}
```
3. Publish the script to your page.
That should do it! Prospects who are qualified through RevenueHero will now see the scheduler, when they submit your typeform!
# How to integrate RevenueHero with Unbounce forms?
Source: https://help.revenuehero.io/web-forms/unbounce
Integrate RevenueHero's scheduler with your Unbounce form in 4 simple steps
RevenueHero works easily with your Unbounce forms on your landing pages. These steps will show you how to set up RevenueHero widget with your form to convert demos quickly with the Inbound Router!
1. Identify the [unique form identifier](https://documentation.unbounce.com/hc/en-us/articles/203799174-Adding-and-Editing-Forms-in-the-Classic-Builder#content10) for your Unbounce Form which will be something like `#lp-pom-form-27`
**Note**
If Unbounce forms do not have an ID property, one can use `form` as the identifier as long as it's the only form on your landing page. But it's **recommended** to set up a form with ID and use that in RevenueHero script.
2. Set up an [Inbound Router](/routers/inbound/create-inbound-router) in RevenueHero with the form identifier in your form mapping
3. Copy the [installation script](/routers/inbound/create-inbound-router#install-the-script) from the final step of the router set up.
```javascript Sample installation script theme={null}
```
4. In Unbounce, in your [Script Manager](https://documentation.unbounce.com/hc/en-us/articles/360035250491-Adding-Your-Custom-Scripts-Using-Script-Manager#content2), add a custom script, choose placement as **Before Body end tag**, paste the RevenueHero widget script and save.
That's it. You're ready to start converting your Demo Meetings from your landing page ππ
# How to integrate RevenueHero with Webflow forms?
Source: https://help.revenuehero.io/web-forms/webflow
Integrate RevenueHero's scheduler with your Webflow form in 5 simple steps
1. In Webflow, navigate to your form's settings and set a CSS ID with a unique value. For ex. `email-form`
2. Set up an [Inbound Router](/routers/inbound/create-inbound-router) in RevenueHero with the form identifier in your form mapping
3. Copy the [installation script](/routers/inbound/create-inbound-router#install-the-script) from the final step of the router set up.
```javascript Sample installation script theme={null}
```
4. In Webflow, navigate to **Sidebar** -> **Pages** -> *Your landing page* -> **Edit Page settings** (wheel icon)
* Scroll to **Inside \ tag** section, and paste the RevenueHero source script
* Scroll to **Before \ tag** section, and paste the RevenueHero widget code
* Verify, and click **Save** in the slide-out's right-top corner
5. Publish your landing page
That's it. You're ready to start converting your Demo Meetings from your landing page ππ
# How to create a Workflow?
Source: https://help.revenuehero.io/workflows/create-workflows
Creating a Workflow is simple and easy. It's just 4 steps, and this article walks you through each step in detail.
## Steps to create a Workflow
### Navigate to Workflows
1. To create a Workflow, use the side nav bar and click on **Workflows**
2. Once you're inside the Workflows page, click on the **Add Workflow** button.
The first step in creating your Workflow is to choose the trigger that will run the workflow
***
### Select Trigger
For a detailed list of supported triggers, check [here.](/workflows/overview#workflow-trigger)
Once the trigger has been selected, you'll see a slide-out open on the right that shows the selected trigger. The next step would be to choose the Meeting Types to restrict this workflow to run on
***
### Select applicable Meeting Types
While selecting the Meeting Types to restrict the workflow to run on, you can either choose the workflow to run for **All Meeting Types** or for **Selected Meeting Types** to choose the subset of Meeting Types.
Once the applicable Meeting Type setting has been chosen, click **Proceed** at the bottom right corner. The next step is to configure the action of the workflow i.e. where to send the notification to.
***
### Select Action
Choose to send the notification via Slack to specific channels or via Email to the booker, assignee or specific people.
For a detailed list of supported actions for supported triggers, check [here.](/workflows/overview#workflow-action)
After choosing an action, you'll see a slide-out open on the right to configure properties for each action. Each action roughly has the following skeleton that has configurable text with the help of [Placeholders and Info Blocks](/workflows/overview#placeholders-and-info-blocks) and a powerful rich text editor.
Each action comes pre-filled with appropriate title and body based on the trigger to help set it up quickly.
#### Customize Slack message
1. Choose the Slack channel
2. Configure the notification title
3. Configure the notification content
4. Configure placeholders and info blocks if any
5. Choose **Proceed** at the bottom right corner
**NOTE**
When configuring a Slack notification to a channel, please note that the ReveuneHero bot needs to be added to the channel to receive notifications.
This can be done by typing **@revenuehero** in the message box of the channel and pressing enter and you should see a confirmation message stating bot has been added to the channel
#### Customize Email to Assignee message
1. Configure the email subject
2. Configure the email content
3. Configure placeholders and info blocks if any
4. Choose **Proceed** at the bottom right corner
#### Customize Email to Specific people message
1. Type the recipients of the mail
2. Configure the email subject
3. Configure the email content
4. Configure placeholders and info blocks if any
5. Choose **Proceed** at the bottom right corner
Preview the configured workflow and if everything looks okay, click on **Create Workflow** on the top right corner of the page to create your workflow and give it a name to remember by πππ
#### Trigger a webhook
1. Add the receiving webhook URL
2. Add a secret to validating using that on the receiving app
3. Add any custom headers needed
Preview the configured workflow and if everything looks okay, click on **Create Workflow** on the top-right corner of the page to create your workflow and give it a name to remember by πππ
For a detailed list of webhook payloads, check [here.](/workflows/webhook-payloads)
# Slack notification for Meeting completion
Source: https://help.revenuehero.io/workflows/examples/meeting-completed-slack-notification
Learn how to set up a workflow to receive Slack messages when a RevenueHero meeting ends
One can set up a Slack notification to be received in your channel of choice when a RevenueHero meeting ends. This is commonly set up to take quick action from inside Slack like marking a meeting as No-Show.
## Set up workflow
A workflow in RevenueHero can be quickly [set up in 4 simple steps](/workflows/create-workflows). In this case, we'll go over what trigger and action to choose to set up a **Mark No-Show** workflow and that can be applied to the above workflow creation guide.
#### Choose Trigger
Navigate to Workflows by going to **Sidebar** -> **Workflows** -> **Add Workflow** in the top-right corner.
Choose **When a meeting is completed** as the trigger. RevenueHero sets a meeting as **Completed** when the meeting ends. The meeting can be marked for No-Show only after the meeting is completed.
#### Choose Meeting Types
You can restrict the workflow to notify meetings originating from specific Meeting Types or it can be configured to notify if any meeting is completed.
#### Choose Action
Since we want to mark a meeting as a No-Show from inside Slack, we'll be choosing **Send message to Slack** as the action.
Once you choose the action, you can customize the message you want to receive in the Slack message with appropriate placeholders. Once it looks good, you can save it with a name to activate the workflow.
Once active, you should be receiving the Slack messages for your completed meetings in the configured Slack channel π
## Mark as No-Show in Slack
An example Slack message for your meeting completion notification will look something like this. To mark the meeting as a No-Show all one has to do is click the button at the bottom of the message that reads **Mark as No-Show**, and it'll be marked as a No-Show in RevenueHero which will in turn be synced into your CRM in the prospect's properties.
# Overview of Workflows in RevenueHero
Source: https://help.revenuehero.io/workflows/overview
Workflows in RevenueHero help configure notifications when certain events occur
A workflow in RevenueHero helps set up notifications when certain events occur within the product. A workflow comprises three parts --
1. Choose your [Trigger](/workflows/overview#workflow-trigger)
2. Choose [Meeting Types](/workflows/overview#meeting-type-restriction) to take actions for
3. Choose your [Action](/workflows/overview#workflow-action)
Here's a detailed step-by-step [guide to creating a new Workflow](/workflows/create-workflows).
***
## Workflow Trigger
Triggers are the starting point for a workflow to run. Configured workflows are run when the event specific in the Trigger happens in the product.
**NOTE**
The supported triggers cover the lifecycle of a meeting from before it's created when it's created to when it's done. So you can configure multiple workflows to track progress across stages.
1. When a prospect doesn't book a meeting
2. When a prospect is disqualified
3. When a prospect is redistributed
4. When a prospect submits the form
5. After a meeting ends
6. Before a meeting begins
7. When a meeting is booked
8. When a meeting is canceled
9. When a meeting is completed
10. When a meeting is marked as '**No Show**'
11. When a meeting is rescheduled
## Meeting Type restriction
A workflow can be configured to run for all triggers or for triggers that originate from certain sources having specific Meeting Types.
1. When **All Meeting Types** is chosen, the workflow will run for configured triggers for any meeting from any Meeting Type sources.
2. When **Selected Meeting Types** is chosen, the workflow will run for configured triggers from any meeting from selected Meeting Type sources.
## Workflow Action
Actions are the notification unit that sends messages to the specified destinations based on configuration. Certain actions are not available for certain triggers due to the nature of the trigger. Unsupported triggers for each action have been listed under the action.
There are four destinations that one can send a notification to based on the chosen trigger:
1. Send a message to Slack Channel
Configurable for all triggers
2. Send mail to Assignee
Configurable for all triggers except **When a prospect submits form** and **When a prospect is disqualified**
3. Send mail to a specific address
Configurable for all triggers
4. Send a webhook
Configurable for all triggers
Once the preferred action is chosen, one can configure the **Title** and **Description** of the message that goes out in **Slack**/**Email**. While drafting the content, one can also use available **placeholders** whose values will be dynamically replaced.
## Placeholders and Info Blocks
Placeholders are single-valued dynamic blocks that can be inserted in between your text to insert dynamic values like Booker name, Assignee Name, etc.
1. **Company Name**
The booker's company name.
For example, `Secret Services Inc.`
2. **Account Name**
The assignee's company name.
For example, `RevenueHero`
3. **Booker Name**
The name of the booker.
For example, `Dr. No`
4. **Assignee Name**
The name of the assignee.
For example, `James Bond`
5. **Team Name**
The name of the team assignee belongs to.
For example, `Mi5 Field Agents`
6. **Duration**
The humanized text of the meeting duration.
For example, `30 minutes`
7. **Time**
The humanized meeting time.
For example, `Tuesday, March 07, 2023, at 01:00 am (India, Sri Lanka Time)`
8. **Meeting Link**
The link to the public meeting page in RevenueHero.
For example, `https://customer.revenuehero.io/meetings/abc1234`
9. **Conference Link**
The conference link for the meeting from Zoom, Google Meet, etc.
For example, `https://customer.revenuehero.io/meetings/abc1234/conference`
10. **Reschedule Link**
The rescheduling link for the meeting in RevenueHero.
For example, `https://customer.revenuehero.io/meetings/abc1234/reschedule`
11. **Cancel Link**
The cancellation link for the meeting in RevenueHero.
For example, `https://customer.revenuehero.io/meetings/abc1234/cancel`
12. **Meeting name**
The name of the meeting from RevenueHero.
For example, `Dr. No <> James Bond | Mi5 Demo`
13. **Meeting type name**
the name of the meeting type configuration in RevenueHero.
For example, `Mi5 Demo`
14. **Booker Email**
The email address of the booker of the meeting.
For example, `drno@evilvillainverse.com`
15. **Cancellation Reason**
The reason for cancellation that's entered when a meeting is canceled.
For example, `Conflicting date with another meeting`
16. **Form name**
The form in RevenueHero from which the meeting or submission originated
For example, `US Demo Form`
17. **Previous booking time**
The original meeting time when it is rescheduled. This is used in meeting time change notifications
For example, `Tuesday, March 05, 2023, at 01:00 am (India, Sri Lanka Time)`
***
Info Blocks are multi-valued dynamic blocks that can be chosen to be appended at the end of your notifications to get more context.
1. **Form Entries**
The list of mapped form fields and their values from a form submission
```
Email: drno@evilvillainverse.com
Company size: 0-10
```
2. **Participants list**
```
drno@evilvillainverse.com
professordent@evilvillainverse.com
jamesbond@mi5.com
```
# Webhook Payload
Source: https://help.revenuehero.io/workflows/webhook-payloads
Samples of different webhook payloads received for different source
For each source of meeting/submission, we send the data in the following structure to the configured URLs. Depending on the source it came in i.e Inbound/Campaign/Relay/Meeting links, the payload structure varies to reflect the data captured
```json theme={null}
{
// -----------------
// Session payload
// -----------------
// Unique session ID
// type: [string]
"id": "fa8a2edf-ed8e-459c-8d32-9aed8285de89",
// URL of page session was initiated
// type: [string]
"source_url": "https://myawesomewebsite.com/demo",
// Time zone of prospect
// type: [string]
"time_zone": "Europe/Rome",
// Session created time
// type: [timestamp]
"created_at": "2024-02-02T19:00:00Z",
// Prospect info
// type: [object]
"prospect": {
// Prospect name
// type: [string]
"name": "Excited prospect",
// Prospect email
// type: [string]
"email": "excitedprospect@somemail.com",
},
// Assignee info
// type: [object]
// Refer [note] for more details
"assignee": {
// Assignee name
// type: [string]
"name": "Awesome Assignee",
// Assignee email
// type: [string]
"email": "assignee@kickasscompany.com",
},
// ------------------------
// Source specific payload
// ------------------------
// Type of event source
// type: [string]
"type": "form_session",
// Name of the Inbound Router
// type: [string]
"router_name": "Demo conversion router",
// Name of the Meeting Type
// type: [string]
"meeting_type_name": "45-min Demo",
// Duration of the meeting if booked
// type: [integer]
"duration": 45,
// Name of the form mapped
// type: [string]
"form_mapping_name": "Demo form",
// Prospect was qualified, or no
// type: [boolean]
"qualified": true,
// Rule that qualified the prospect
// type: [string]
// Unset if prospect was disqualified
"rule": null | "US Lead >1M$",
// Team name
// type: string
// Unset if owner found via matching rule
"team": null | "US East AEs",
// CRM info
// type: [object]
"crm": {
// Contact ID in CRM
// type: [string]
// Unset by default. Set when Contact found in CRM
"contact_id": null | "68116051",
// Lead ID in CRM
// type: [string]
// Unset by default. Set when Lead found in CRM
"lead_id": null | "00QUN0000022zz33AA",
},
// ----------------------------------------------
// Meeting payload (present when meeting booked)
// ----------------------------------------------
// Unique Meeting ID
// type: [string]
"id": "98ed5828dea9-23d8-c954-e8de-fde2a8af",
// Link to meeting details
// type: [string]
"url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af",
// Meeting reschedule link
// type: [string]
"reschedule_url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af/reschedule",
// Meeting cancellation link
// type: [string]
"cancellation_url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af/cancel",
// Name of the meeting
// type: [string]
"name": "Prospect <> Assignee | KickassCompany",
// Status of the meeting
// type: [string]
// values: [ upcoming | no_show | cancelled | completed ]
"status": "upcoming",
// Time at when meeting is happening
// type: [timestamp]
"meeting_time": "2024-02-12T16:00:00Z",
// Cancellation reason
// type: [string]
// Unset by default. Set when meeting is cancelled
"cancellation_reason": null | "Busy. Please reschedule",
// Time at which meeting was rescheduled
// type: [timestamp]
// Unset by default. Set when meeting is rescheduled
"last_rescheduled_at": null | "2024-02-10T16:00:00Z",
// Number of times meeting was rescheduled
// type: [integer]
// 0 by default. Increased when meeting is rescheduled
"reschedule_count": 0,
// Meeting duration
// type: [integer]
"duration": 30,
// Meeting guests
// type: [array of strings]
// Empty array by default
"guests": [],
// Meeting event ID in calendar
// Unset if event not created on calendar
"calendar_event_id": null | "fhisme59b1a7pk7a7jh6pv5qts",
// Meeting created time
// type: [timestamp]
"created_at": "2024-02-02T19:05:00Z",
// CRM info
// type: [object]
"crm": {
// Contact ID in CRM
// type: [string]
// Unset by default. Set when Contact found in CRM
"contact_id": null | "68116051",
// Lead ID in CRM
// type: [string]
// Unset by default. Set when Lead found in CRM
"lead_id": null | "00QUN0000022zz33AA",
// Event ID in CRM
// type: [string]
// Unset by default. Set when Event is created in CRM
"meeting_id": null | "46772929196",
},
// Meeting location
// type: [object]
"location": {
// Conference ID
// Unset by default. Set when conference generated
// type: [string]
"id": null | "123456789",
// Conference joining link
// type: [string]
// value: [ Zoom | Meet | Teams | Daily | Dyte ] link
// Unset by default. Set when conference generated
"link": null | "https://us02web.zoom.us/j/123456789",
},
}
```
```json theme={null}
{
// -----------------
// Session payload
// -----------------
// Unique session ID
// type: [string]
"id": "fa8a2edf-ed8e-459c-8d32-9aed8285de89",
// URL of page session was initiated
// type: [string]
"source_url": "https://myawesomewebsite.com/demo",
// Time zone of prospect
// type: [string]
"time_zone": "Europe/Rome",
// Session created time
// type: [timestamp]
"created_at": "2024-02-02T19:00:00Z",
// Prospect info
// type: [object]
"prospect": {
// Prospect name
// type: [string]
"name": "Excited prospect",
// Prospect email
// type: [string]
"email": "excitedprospect@somemail.com",
},
// Assignee info
// type: [object]
// Refer [note] for more details
"assignee": {
// Assignee name
// type: [string]
"name": "Awesome Assignee",
// Assignee email
// type: [string]
"email": "assignee@kickasscompany.com",
},
// ------------------------
// Source specific payload
// ------------------------
// Type of event source
// type: [string]
"type": "campaign_session",
// Campaign router name
// type: [string]
"router_name": "High intent pricing re-targetting",
// Meeting type name
// type: [string]
"meeting_type_name": "15-min Demo",
// Duration of the meeting if booked
// type: [string]
"duration": 15,
// Qualified Matching rule name
// type: [string]
// Unset if matching rule didn't pass
"rule": null | "Existing contact owner",
// UTM params captured
// type: [object]
// Unset if no UTM params detected
"utm_params": {
"utm_medium": "email",
"utm_source": "hs_automation",
"utm_content": "12345678",
"utm_campaign": "Website form fill retarget"
},
// Phone country name for prospect
// type: [string]
// Unset when there's no phone number set up
"country_name": null | "us",
// Phone number of prospect
// type: [string]
// Unset when there's no phone number set up
"phone_number": null | "+1123456789",
// Consent enabled
// type: [boolean]
"consent": true,
// Team name
// type: string
// Unset if owner found via matching rule
"team": null | "US East AEs",
// CRM info
// type: [object]
"crm": {
// Contact ID in CRM
// type: [string]
// Unset by default. Set when Contact found in CRM
"contact_id": null | "68116051",
// Lead ID in CRM
// type: [string]
// Unset by default. Set when Lead found in CRM
"lead_id": null | "00QUN0000022zz33AA",
},
// ----------------------------------------------
// Meeting payload (present when meeting booked)
// ----------------------------------------------
// Unique Meeting ID
// type: [string]
"id": "98ed5828dea9-23d8-c954-e8de-fde2a8af",
// Link to meeting details
// type: [string]
"url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af",
// Meeting reschedule link
// type: [string]
"reschedule_url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af/reschedule",
// Meeting cancellation link
// type: [string]
"cancellation_url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af/cancel",
// Name of the meeting
// type: [string]
"name": "Prospect <> Assignee | KickassCompany",
// Status of the meeting
// type: [string]
// values: [ upcoming | no_show | cancelled | completed ]
"status": "upcoming",
// Time at when meeting is happening
// type: [timestamp]
"meeting_time": "2024-02-12T16:00:00Z",
// Cancellation reason
// type: [string]
// Unset by default. Set when meeting is cancelled
"cancellation_reason": null | "Busy. Please reschedule",
// Time at which meeting was rescheduled
// type: [timestamp]
// Unset by default. Set when meeting is rescheduled
"last_rescheduled_at": null | "2024-02-10T16:00:00Z",
// Number of times meeting was rescheduled
// type: [integer]
// 0 by default. Increased when meeting is rescheduled
"reschedule_count": 0,
// Meeting duration
// type: [integer]
"duration": 30,
// Meeting guests
// type: [array of strings]
// Empty array by default
"guests": [],
// Meeting event ID in calendar
// Unset if event not created on calendar
"calendar_event_id": null | "fhisme59b1a7pk7a7jh6pv5qts",
// Meeting created time
// type: [timestamp]
"created_at": "2024-02-02T19:05:00Z",
// CRM info
// type: [object]
"crm": {
// Contact ID in CRM
// type: [string]
// Unset by default. Set when Contact found in CRM
"contact_id": null | "68116051",
// Lead ID in CRM
// type: [string]
// Unset by default. Set when Lead found in CRM
"lead_id": null | "00QUN0000022zz33AA",
// Event ID in CRM
// type: [string]
// Unset by default. Set when Event is created in CRM
"meeting_id": null | "46772929196",
},
// Meeting location
// type: [object]
"location": {
// Conference ID
// Unset by default. Set when conference generated
// type: [string]
"id": null | "123456789",
// Conference joining link
// type: [string]
// value: [ Zoom | Meet | Teams | Daily | Dyte ] link
// Unset by default. Set when conference generated
"link": null | "https://us02web.zoom.us/j/123456789",
},
}
```
```json theme={null}
{
// -----------------
// Session payload
// -----------------
// Unique session ID
// type: [string]
"id": "fa8a2edf-ed8e-459c-8d32-9aed8285de89",
// URL of page session was initiated
// type: [string]
"source_url": "https://myawesomewebsite.com/demo",
// Time zone of prospect
// type: [string]
"time_zone": "Europe/Rome",
// Session created time
// type: [timestamp]
"created_at": "2024-02-02T19:00:00Z",
// Prospect info
// type: [object]
"prospect": {
// Prospect name
// type: [string]
"name": "Excited prospect",
// Prospect email
// type: [string]
"email": "excitedprospect@somemail.com",
},
// Assignee info
// type: [object]
// Refer [note] for more details
"assignee": {
// Assignee name
// type: [string]
"name": "Awesome Assignee",
// Assignee email
// type: [string]
"email": "assignee@kickasscompany.com",
},
// ------------------------
// Source specific payload
// ------------------------
// Type of event source
// type: [string]
"type": "link_session",
// Meeting link name
// type: [string]
"router_name": "Planning call",
// UTM params captured
// type: [object]
// Unset if no UTM params detected
"utm_params": {
"utm_medium": "email",
"utm_source": "hs_automation",
"utm_content": "12345678",
"utm_campaign": "Website form fill retarget"
},
// Phone country name for prospect
// type: [string]
// Unset when there's no phone number set up
"country_name": null | "us",
// Phone number of prospect
// type: [string]
// Unset when there's no phone number set up
"phone_number": null | "+1123456789",
// Consent enabled
// type: [boolean]
"consent": true,
// Question-Answer pairs set up
// type: [array of objects]
"answers": [
{
"question": "Which console do you own?",
"answer": "PS4",
},
{
"question": "Do you game often?",
"answer": "Once a week",
}
],
// CRM info
// type: [object]
"crm": {
// Contact ID in CRM
// type: [string]
// Unset by default. Set when Contact found in CRM
"contact_id": null | "68116051",
// Lead ID in CRM
// type: [string]
// Unset by default. Set when Lead found in CRM
"lead_id": null | "00QUN0000022zz33AA",
},
// ----------------------------------------------
// Meeting payload (present when meeting booked)
// ----------------------------------------------
// Unique Meeting ID
// type: [string]
"id": "98ed5828dea9-23d8-c954-e8de-fde2a8af",
// Link to meeting details
// type: [string]
"url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af",
// Meeting reschedule link
// type: [string]
"reschedule_url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af/reschedule",
// Meeting cancellation link
// type: [string]
"cancellation_url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af/cancel",
// Name of the meeting
// type: [string]
"name": "Prospect <> Assignee | KickassCompany",
// Status of the meeting
// type: [string]
// values: [ upcoming | no_show | cancelled | completed ]
"status": "upcoming",
// Time at when meeting is happening
// type: [timestamp]
"meeting_time": "2024-02-12T16:00:00Z",
// Cancellation reason
// type: [string]
// Unset by default. Set when meeting is cancelled
"cancellation_reason": null | "Busy. Please reschedule",
// Time at which meeting was rescheduled
// type: [timestamp]
// Unset by default. Set when meeting is rescheduled
"last_rescheduled_at": null | "2024-02-10T16:00:00Z",
// Number of times meeting was rescheduled
// type: [integer]
// 0 by default. Increased when meeting is rescheduled
"reschedule_count": 0,
// Meeting duration
// type: [integer]
"duration": 30,
// Meeting guests
// type: [array of strings]
// Empty array by default
"guests": [],
// Meeting event ID in calendar
// Unset if event not created on calendar
"calendar_event_id": null | "fhisme59b1a7pk7a7jh6pv5qts",
// Meeting created time
// type: [timestamp]
"created_at": "2024-02-02T19:05:00Z",
// CRM info
// type: [object]
"crm": {
// Contact ID in CRM
// type: [string]
// Unset by default. Set when Contact found in CRM
"contact_id": null | "68116051",
// Lead ID in CRM
// type: [string]
// Unset by default. Set when Lead found in CRM
"lead_id": null | "00QUN0000022zz33AA",
// Event ID in CRM
// type: [string]
// Unset by default. Set when Event is created in CRM
"meeting_id": null | "46772929196",
},
// Meeting location
// type: [object]
"location": {
// Conference ID
// Unset by default. Set when conference generated
// type: [string]
"id": null | "123456789",
// Conference joining link
// type: [string]
// value: [ Zoom | Meet | Teams | Daily | Dyte ] link
// Unset by default. Set when conference generated
"link": null | "https://us02web.zoom.us/j/123456789",
},
}
```
```json theme={null}
{
// -----------------
// Session payload
// -----------------
// Unique session ID
// type: [string]
"id": "fa8a2edf-ed8e-459c-8d32-9aed8285de89",
// URL of page session was initiated
// type: [string]
"source_url": "https://myawesomewebsite.com/demo",
// Time zone of prospect
// type: [string]
"time_zone": "Europe/Rome",
// Session created time
// type: [timestamp]
"created_at": "2024-02-02T19:00:00Z",
// Prospect info
// type: [object]
"prospect": {
// Prospect name
// type: [string]
"name": "Excited prospect",
// Prospect email
// type: [string]
"email": "excitedprospect@somemail.com",
},
// Assignee info
// type: [object]
// Refer [note] for more details
"assignee": {
// Assignee name
// type: [string]
"name": "Awesome Assignee",
// Assignee email
// type: [string]
"email": "assignee@kickasscompany.com",
},
// ------------------------
// Source specific payload
// ------------------------
// Type of event source
// type: [string]
"type": "relay_session",
// Name of Relay
// type: [string]
"router_name": "US BDR Handoff - [Phone]",
// Meeting type name
// type: [string]
"meeting_type_name": "Phone 45-min Intro",
// Duration of the meeting if booked
// type: [integer]
"duration": 45,
// Qualified rule name
// type: [string]
// Unset if no rule qualified
"rule": "US AE 50-100M$",
// UTM params captured via Relay Links
// type: [object]
// Unset if no UTM params detected
"utm_params": {
"utm_medium": "email",
"utm_source": "hs_automation",
"utm_content": "12345678",
"utm_campaign": "Website form fill retarget"
},
// Meeting assigned to another or oneself
// type: [boolean]
"assigned_to_colleague": true,
// Booker info
// type: [object]
"booker": {
// Name of Booker
// type: [string]
"name": "awesomebooker@organization.io",
// Email of Booker
// type: [string]
"email": "Awesome Booker",
},
// CRM info
// type: [object]
"crm": {
// Contact ID in CRM
// type: [string]
// Unset by default. Set when Contact found in CRM
"contact_id": null | "68116051",
// Lead ID in CRM
// type: [string]
// Unset by default. Set when Lead found in CRM
"lead_id": null | "00QUN0000022zz33AA",
},
// ----------------------------------------------
// Meeting payload (present when meeting booked)
// ----------------------------------------------
// Unique Meeting ID
// type: [string]
"id": "98ed5828dea9-23d8-c954-e8de-fde2a8af",
// Link to meeting details
// type: [string]
"url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af",
// Meeting reschedule link
// type: [string]
"reschedule_url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af/reschedule",
// Meeting cancellation link
// type: [string]
"cancellation_url": "https://kickasscompany.revenuehero.io/meetings/98ed5828dea9-23d8-c954-e8de-fde2a8af/cancel",
// Name of the meeting
// type: [string]
"name": "Prospect <> Assignee | KickassCompany",
// Status of the meeting
// type: [string]
// values: [ upcoming | no_show | cancelled | completed ]
"status": "upcoming",
// Time at when meeting is happening
// type: [timestamp]
"meeting_time": "2024-02-12T16:00:00Z",
// Cancellation reason
// type: [string]
// Unset by default. Set when meeting is cancelled
"cancellation_reason": null | "Busy. Please reschedule",
// Time at which meeting was rescheduled
// type: [timestamp]
// Unset by default. Set when meeting is rescheduled
"last_rescheduled_at": null | "2024-02-10T16:00:00Z",
// Number of times meeting was rescheduled
// type: [integer]
// 0 by default. Increased when meeting is rescheduled
"reschedule_count": 0,
// Meeting duration
// type: [integer]
"duration": 30,
// Meeting guests
// type: [array of strings]
// Empty array by default
"guests": [],
// Meeting event ID in calendar
// Unset if event not created on calendar
"calendar_event_id": null | "fhisme59b1a7pk7a7jh6pv5qts",
// Meeting created time
// type: [timestamp]
"created_at": "2024-02-02T19:05:00Z",
// CRM info
// type: [object]
"crm": {
// Contact ID in CRM
// type: [string]
// Unset by default. Set when Contact found in CRM
"contact_id": null | "68116051",
// Lead ID in CRM
// type: [string]
// Unset by default. Set when Lead found in CRM
"lead_id": null | "00QUN0000022zz33AA",
// Event ID in CRM
// type: [string]
// Unset by default. Set when Event is created in CRM
"meeting_id": null | "46772929196",
},
// Meeting location
// type: [object]
"location": {
// Conference ID
// Unset by default. Set when conference generated
// type: [string]
"id": null | "123456789",
// Conference joining link
// type: [string]
// value: [ Zoom | Meet | Teams | Daily | Dyte ] link
// Unset by default. Set when conference generated
"link": null | "https://us02web.zoom.us/j/123456789",
},
}
```