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

# Connect RevenueHero

> Use a RevenueHero campaign link, support your custom domain, and confirm booked meetings with a webhook.

<div className="darwin-location"><strong>Find it in Darwin</strong> Settings → Scheduling → RevenueHero <a href="https://app.meetdarwin.ai/admin/settings/calendar">Open Scheduling ↗</a></div>

Darwin passes the visitor’s name and email into your RevenueHero campaign scheduler. Visitors choose a time inside chat, and RevenueHero applies the campaign’s meeting distribution rules.

<Steps>
  <Step title="Copy your campaign link">
    In RevenueHero, go to **Routers → Campaign** and copy the link for the campaign you want Darwin to use. Use the full public HTTPS URL, not your RevenueHero admin dashboard.

    These formats are supported:

    ```text theme={null}
    https://your-team.schedulehero.io/campaign/demo
    https://hello.revenuehero.io/campaign/demo
    https://meet.yourcompany.com/campaign/demo
    ```

    The last example uses your own domain. Copy the URL exactly as RevenueHero supplies it; the path is `/campaign/` followed by your router name.
  </Step>

  <Step title="Select RevenueHero in Darwin">
    Open **Settings → Scheduling**, select **RevenueHero**, and paste the URL into **Campaign booking link**. Select **Save and use RevenueHero**.

    The RevenueHero card shows **Active**. It is now the only provider selected for new bookings.
  </Step>

  <Step title="Connect booking confirmation">
    Follow the webhook steps below so Darwin can verify the appointments created by the campaign. The link handles scheduling; the webhook confirms the result for reporting and usage.
  </Step>
</Steps>

## Custom domains

A verified RevenueHero custom domain works with the same campaign path. Configure the domain in RevenueHero under **Settings → Organization Settings → Scheduler Configuration** before using it in Darwin. Then paste the complete URL into **Campaign booking link**.

Darwin does not need a RevenueHero-owned hostname. It preserves your custom host, adds the visitor details, and accepts completion messages only from that campaign’s exact origin and the embedded booking window.

[RevenueHero’s custom-domain instructions](https://help.revenuehero.io/settings/organization/scheduler-domain) explain domain setup and verification.

## Confirm bookings in Darwin

<Steps>
  <Step title="Copy the notification URL">
    After saving the campaign link, expand **Confirm bookings in Darwin**. Select **Copy webhook URL**. An owner or admin can copy this private URL.

    Keep it in the RevenueHero workflow. Do not add it to the public campaign link or share it with website visitors.
  </Step>

  <Step title="Create the booked-meeting workflow">
    In RevenueHero, create a workflow with the trigger **When a meeting is booked**. Choose **Send a webhook** and paste the URL copied from Darwin. Save and enable the workflow.
  </Step>

  <Step title="Keep changes in sync">
    Set up cancellation and reschedule workflows using the same notification URL so Darwin can update the meeting’s status and time.
  </Step>

  <Step title="Verify the complete journey">
    Coordinate a real test appointment with your team through Darwin on your public website. Confirm the appointment exists in RevenueHero and appears in Darwin under **Meetings → Verified meetings**.

    The setup panel shows **Receiving** after a matching booking notification arrives. **Last notification** shows when Darwin most recently received one. A live appointment can count toward usage.
  </Step>
</Steps>

[RevenueHero’s workflow guide](https://help.revenuehero.io/workflows/create-workflows) covers configuring triggers and webhook actions.

## What happens without the webhook?

Visitors can still book through your campaign link. If the scheduler reports completion in the browser, Darwin shows the booking under **Awaiting verification**. It does not count toward usage until an authenticated, matching webhook confirms it.

| In Darwin                 | Meaning                                                                    |
| ------------------------- | -------------------------------------------------------------------------- |
| **Active**                | RevenueHero is selected for new bookings.                                  |
| **Awaiting verification** | The browser reported a booking; a matching webhook has not confirmed it.   |
| **Verified meetings**     | RevenueHero confirmed the booking and Darwin matched it to a conversation. |
| **Receiving**             | The configured workflow has delivered a matching booking notification.     |

## Visitor details and attribution

Paste the base campaign link. You do not need to add name, email, or CRM personalization tokens. Darwin fills in the visitor details collected in chat and removes pasted contact values that could belong to someone else.

Darwin adds its booking reference in `utm_content`; keep that value intact through the workflow. Existing `utm_source`, `utm_medium`, and `utm_campaign` values are preserved. A notification must match the booking reference and the email captured in chat.

## Test safely

**Test chat** uses a local calendar simulation instead of opening your live RevenueHero campaign. It creates no appointment, invitation, usage, or analytics. This checks the chat journey; use a coordinated real booking on the installed website to check the RevenueHero workflow.

<AccordionGroup>
  <Accordion title="Darwin rejects my campaign link">
    Use HTTPS and the `/campaign/your-router-name` path. Custom domains are supported. Dashboard URLs, private network addresses, and URLs containing passwords are not accepted. Copy the link from RevenueHero rather than typing it from memory.
  </Accordion>

  <Accordion title="The calendar is blank or does not load">
    Open the public campaign URL while signed out. Check that the campaign is active and, for a custom domain, that RevenueHero has verified its DNS configuration. The campaign must allow embedding in your website’s chat.
  </Accordion>

  <Accordion title="The appointment exists but is awaiting verification">
    Check that the booked-meeting workflow is enabled and uses the exact private URL from Darwin. The booking must start through Darwin’s installed chat, keep its `utm_content` reference, and use the email captured in the conversation. In-app previews and bookings made directly from the campaign URL do not validate that attribution.
  </Accordion>

  <Accordion title="Darwin received an unmatched notification">
    The workflow reached Darwin, but it did not identify a matching campaign booking session. Check the campaign, workspace, and attribution values. An unrelated booking from the same RevenueHero account does not count as a Darwin booking.
  </Accordion>
</AccordionGroup>

[Choose a provider →](/assistant/scheduling) · [Connect Calendly →](/integrations/calendly) · [Booking troubleshooting →](/help/booking-troubleshooting)
