Routing / Path steps

Routing

Path steps

Display a calendar, assign, notify, update the CRM, redirect or disqualify.

Steps are what a path does once its rule matches. A path can show a calendar, assign an owner, email teammates, update your CRM, send the lead to a URL or turn them away politely, and it can combine several of these. The catch-all uses the same steps.

Add a step with Add step at the end of a path, or hover the line between two nodes and click the plus. The Add a step menu lists every step type and greys out the ones that can't be added to that path, with the reason. A path holds up to ten steps.

How steps combine

Steps don't run one after another like a script. One step decides what the lead experiences, and the others run alongside it:

Steps on the pathOutcomeWhat the lead sees
Disqualify, with or without RedirectDisqualifiedYour message, or a redirect
Display calendar, with anything except DisqualifySent to calendarA calendar, then a redirect if the path has one
Assign to, without Display calendarAssignedA confirmation message
Redirect onlyRedirectedThe page at your URL
Catch-all with only Notify or Update CRM, or no stepsNo matchNothing; the form submits as usual

A few rules keep paths unambiguous:

  • Every path needs a step that decides what the lead sees: Display calendar, Assign to, Redirect to or Disqualify. A path with only Notify or Update CRM steps is flagged with "Add a calendar, assign, redirect or disqualify step" and can't be saved. The catch-all is the exception: it may hold only Notify and Update CRM steps, or none at all.
  • A path has at most one step of each type, except Notify, which you can add as often as you like.
  • Disqualify can't share a path with Display calendar or Assign to.
  • Notify and Update CRM never change what the lead sees. They run in the background, only for real leads (never in the preview), and not when routing ends in an error. Most of their work happens right after routing; on calendar paths, the parts that need the booked rep wait until the meeting is booked (see Notify and Update CRM).

The order of steps on the canvas doesn't change the result.

Choosing who gets the lead

Display calendar and Assign to both need a target, picked under Show availability of or Assign the lead to:

TargetWho
Record ownerThe owner from your CRM or the lead's previous owner, with a fallback
Team via round robinA team, distributed with its round robin settings
Individual userEvery lead on this path goes to one person
Booking link hostsThe hosts configured on the meeting type (Display calendar only)

For Record owner, choose where the owner comes from: CRM, then previous Cauliflower owner, CRM record owner only or Previous Cauliflower owner only. The owner must be an active member of your workspace. If they aren't, or there is no owner, Cauliflower uses the option under If the owner isn't a member, fall back to: a team (round robin), a specific person or, on a calendar step, the booking link's hosts. On an Assign to step with no fallback, routing ends with an error.

Record owner pairs naturally with an ownership rule, and the builder marks it as recommended on those paths.

Display calendar

Shows a calendar so the lead books right away.

  • Meeting type: the booking link to book. Duration, location, questions and buffers come from the meeting type.
  • Show availability of: the target described above.
  • Allow scheduling with another team member: in Handoff, lets the booker pick any member of the team instead of the suggested rep.
  • Calendar headline: shown above the calendar. Without one, the router's Default calendar headline from its Settings tab is used.
  • One-click booking: picking a time books the meeting straight away, with no details step. See One-click booking.
  • If they don't book: how long to wait before a lead counts as dropped off, and follow-up steps for them. See Leads who don't book.

With a team target, the team's round robin mode decides what the lead sees. In flexible mode they see the combined availability of every active member, and the fairest rep who is free at the chosen time gets the meeting. In strict mode they only see the next rep in line. If the meeting type uses collective hosting, the meeting is booked with every active team member and only times when all of them are free are offered.

The rep is credited in the team's rotation when the meeting is booked. If the lead has no owner yet, the host becomes the owner. The booking link created for the lead stays valid for seven days.

Assign to

Sets the lead's owner without booking a meeting.

  • Assign the lead to: Record owner, Team via round robin or Individual user. A team picks its next rep immediately, without checking calendars, and the pick counts toward the team's rotation.
  • Write the owner back to the CRM: sets the owner on the CRM record (the owner attribute in Attio, hubspot_owner_id in HubSpot, OwnerId in Salesforce).
  • Message shown to the lead: leave it empty to show the assignee's name followed by "will be in touch shortly."

When a path also has a Display calendar step, the assignment sets the lead's owner and the calendar decides who the meeting is with. The message isn't shown in that case, because the lead sees the calendar.

Notify

Emails teammates about the routed lead.

  • Notify the assignee: the rep picked on this path, plus the lead's owner.
  • Also notify: any members of the workspace.
  • Other email addresses: comma separated, for example a team alias such as [email protected].
  • Note in the email: an optional line at the top, such as "High-intent enterprise lead: please follow up within the hour."

The email shows the lead's name, email, company, job title and employee count when known, the router, the path, the outcome and the assignee, with an Open lead button. Replies go to the lead. Notifications need email to be configured.

When notifications are sent

Notify steps are sent right after routing, with one exception. On a calendar path where the rep isn't known until the lead books, such as a flexible team showing combined availability, a Notify step with Notify the assignee on is sent when the meeting is booked, so the booked rep receives it. Everyone else on that step is notified at the same time, and if the lead never books, the step isn't sent. When the rep is already known at routing time (an individual user, the record owner or a strict round robin pick), the step goes out right after routing. For alerts that must arrive for every routed lead, add a separate Notify step without Notify the assignee.

Update CRM

Creates or updates records in your CRM.

  • Create or update person & company: upserts the person by email and the company by email domain, following the create settings on the CRM integration. Personal email domains never create companies.
  • Set the record owner: writes the lead's rep to the owner attribute configured under Integrations. On a path with an Assign to step, that's the assigned rep, written right after routing. On a calendar path without one, it's the rep who gets booked, written when the meeting is booked.

The step needs a CRM to be connected; the panel shows its status. Meetings booked through a router are logged to the CRM by the integration itself, whether or not the path has this step.

Redirect to

Sends the lead to a URL.

  • URL: a full address starting with http:// or https://.
  • Delay: Instantly, 3, 5 or 10 seconds. With a delay, the path's message is shown first. The delay isn't offered on calendar paths.
  • Pass lead details: appends email, name and company as query parameters, so your thank-you page can greet the lead.

How the redirect behaves depends on the rest of the path:

  • With Display calendar, the lead is redirected after they book, about two seconds after the confirmation appears.
  • With Disqualify, the redirect replaces the message. Set a delay to show the message first and redirect afterwards.
  • On its own, the lead is redirected right after routing.
  • With Assign to, the website widget follows the redirect too, after showing the path's message for the delay if you set one. API callers receive the URL as redirect_url.

Disqualify

Stops the lead and shows a polite message.

  • Reason: required, and grouped in the Disqualifications report. Suggestions include Personal email, Too small, Student, Competitor, Unsupported region, Existing customer and Spam.
  • Message shown to the lead: for example, "Thanks for your interest! We'll follow up by email with resources that fit your needs." Without a message or a redirect, the widget simply closes.

To send disqualified leads to self-serve resources, add a Redirect to step to the same path.

One-click booking

When the form already gave you the lead's name and email, there's nothing left to ask, so the calendar books on the first click. Above the calendar the lead sees "Pick a time to book it as Jane Cooper ([email protected])" with a Not you? link that brings back the details step.

One-click only applies when everything the booking needs is already known and valid. The lead sees the usual details step when:

  • the meeting type has a required question the form didn't answer, or an answer that isn't valid (for example a malformed phone number or a choice that isn't an option);
  • the location is a phone call and the form gave no valid phone number, or the location is Ask the invitee.

If the time was taken a moment earlier, the lead stays on the calendar with fresh times and a short note. On the confirmation screen they can Add guests: each guest gets the confirmation email and the calendar invitation.

Leads who don't book

A lead sent to a calendar counts as dropped off when they leave without booking. The widget and hosted page report how far they got (Saw the calendar, Picked a time or Started entering details), and the wait starts again with every sign of activity. Set the wait under If they don't book → Dropped off after: 15 minutes to a day, 30 minutes by default.

When a lead drops off:

  • the routing event and the lead show Dropped off, with how far they got;
  • the router's Logs tab lists them under Dropped off, each with a Book for them shortcut that opens Handoff with the lead filled in;
  • reports and the dashboard count them;
  • the lead.dropped_off webhook fires;
  • the step's follow-ups run: Notify the team (email and Slack say the lead left without booking), Assign an owner (sets the lead's owner, round robin for teams) and Update CRM.

Leads who come back and book later still get their meeting; the event then shows Booked. Drop-offs are detected by the background worker (see Deploying). Leads routed before this existed, or detected more than a day late, are marked without alerts or follow-ups. Handoff bookings never count as drop-offs.

What happens after routing

Every real routing decision is saved as a routing event and fires the lead.routed webhook. Disqualified leads also fire lead.disqualified, and assigned leads fire lead.assigned. The lead's status becomes Disqualified, Assigned or Routed, and changes to Booked once a meeting is booked, or to Dropped off when a lead sent to a calendar leaves without booking.

Routing ends with the outcome Error when a step can't run: the path's meeting type was deleted, the target team has no active members, or an Assign to step finds nobody. The lead sees no calendar, and Notify and Update CRM are skipped. Run the preview to see the exact error before you publish.