Key Concepts
| Concept | Description |
|---|---|
| Data Field | Reusable form input (text, email, select, etc.) scoped to your company |
| Routing Form | Container for fields, funnel steps, and routing rules |
| Funnel Step | One page/slide in a multi-step form |
| Qualifier | Routing rule with conditions and an action |
| Recipient | Person who received a one-time form link |
Structure Types
| Type | Description |
|---|---|
FORM_ONLY | Single-page form |
FUNNEL_WITH_FORM | Multi-step funnel followed by a final form page |
FUNNEL_ONLY | Multi-step funnel without a final form |
Create a Routing Form
Create a form with inline data fields, funnel steps, and routing rules in a single request:Cascade Creation
When creating or updating a routing form, data fields can be referenced by ID or created inline:fields (form fields) and funnelSteps[].dataFields (funnel step fields).
Data Fields
Data fields are reusable inputs scoped to your company. Common field types:| Type | Description |
|---|---|
email | Email with validation |
phone | Phone number (optional country picker) |
text-single | Single-line text |
text-multi | Multi-line textarea |
number | Numeric input (supports min/max) |
select | Dropdown |
radio | Radio buttons |
checkbox-single | Single checkbox |
checkbox-multi | Multiple checkboxes |
slide | Funnel page with options |
date | Date picker |
rating | Star rating |
file | File upload (Growth+) |
signature | E-signature |
contact | Composite contact field |
Create Data Field
Routing Rules (Qualifiers)
Qualifiers determine where a visitor goes after submitting the form. They are evaluated in order; the first match wins.Routing Actions
| Action | Description | Required Field |
|---|---|---|
eventRedirect | Redirect to a meeting type | meetingTypeId |
customPage | Show localized thank-you page | customPageContent |
externalRedirect | Redirect to URL | externalRedirectLink |
contactForm | Show contact form | contactFormEmail |
requestCallback | Request callback via queue | queueId |
instantCall | Start instant video call | — |
Condition Expressions
Conditions use a nested AND/OR tree:equals, notEqual, contains, notContains, startsWith, blank, notBlank, lessThan, greaterThan, containsAny, containsNone
Targets: attendeeEmail, attendeeFullname, attendeeFirstname, attendeeLastname, attendeePhone, attendeeOther (use customTarget for custom field name)
Fallback Qualifier
If no qualifier hasisFallback: true, a default “Thanks for submitting” custom page is auto-created.
Updating with Declarative Sync
When updating viaPATCH, nested arrays use different strategies:
- Qualifiers: Declarative sync — items with
idare updated, withoutidare created, missing items are removed - Funnel Steps & Fields: Full replace — the array you send replaces the current set
Sending Forms
Send a routing form to a recipient via email, SMS, or generate a one-time link.Delivery Methods
| Method | Description | Required |
|---|---|---|
email (default) | Sends email with one-time link | email |
sms | Sends SMS with one-time link | phone |
link | Generates one-time link only | — |
Send via Email
Generate One-Time Link (No Notification)
publicUrl regardless of delivery method.
Shareable Public Link (Unlimited)
For unlimited-access forms, set aslug:
One-Time Fill
When sent to a recipient, each link can only be submitted once:- Send —
POST /v4/routing-form/:id/sendcreates a recipient with a unique token - Open — Recipient opens the link,
openedAtis recorded - Submit — Recipient submits,
completedAtis recorded - Blocked — Re-submission returns
409 Conflict
Track Recipients
API Reference
| Method | Endpoint | Description |
|---|---|---|
POST | /v4/routing-form | Create routing form |
GET | /v4/routing-form | List routing forms |
GET | /v4/routing-form/:id | Get routing form |
PATCH | /v4/routing-form/:id | Update routing form |
DELETE | /v4/routing-form/:id | Delete routing form |
POST | /v4/routing-form/:id/send | Send to recipient |
GET | /v4/routing-form/:id/recipients | List recipients |
POST | /v4/data-field | Create data field |
GET | /v4/data-field | List data fields |
GET | /v4/data-field/:id | Get data field |
PATCH | /v4/data-field/:id | Update data field |
DELETE | /v4/data-field/:id | Delete data field |
Next Steps
Routing & Round-Robin
Distribute bookings across team members
Meeting Types
Configure meeting templates