Enrollment Forms
Embeddable customer enrollment forms that let prospects sign up for service directly from your website.
Enrollment Forms
NextRoute provides a fully branded, embeddable enrollment form that lets new customers sign up for service directly from your website. The form handles address validation, service plan selection, promo code redemption, and optional payment collection via Stripe.

How It Works
- A prospect visits your enrollment page (e.g.,
nextroute.app/enroll/your-business-slug) - They fill in their name, email, phone, and service address
- The address is geocoded and checked against your service zones
- They choose a service plan and optionally enter a promo or referral code
- If Stripe is connected, they can add a payment method
- The submission either creates the customer immediately (auto-enroll) or creates an enrollment lead for your review
Auto-Enroll vs. Manual Review
You control whether new enrollments are automatically converted to active customers or held for manual approval.
Auto-Enroll (Recommended)
When auto-enroll is enabled in your General Settings:
- A new customer record is created immediately with
billing_status: active - A property is created with the submitted address
- The customer is auto-matched to a service zone based on their coordinates
- A welcome email is sent
- The customer is synced to the appropriate route template
- A Stripe customer + setup intent is created for payment collection
Manual Review
When auto-enroll is disabled:
- An enrollment lead is created with status
new - You review the lead in the dashboard and approve or reject
- On approval, the lead is converted to a full customer record
Service Area Validation
During enrollment, NextRoute checks whether the submitted address falls within one of your configured service zones. This works with all zone boundary types:
- Polygon boundaries — point-in-polygon check
- Radius boundaries — distance from center point
- ZIP code boundaries — ZIP code matching
If no service zones are configured, all addresses are accepted.
If the address is outside your service area, the customer sees a friendly message: "Sorry, this address is outside our current service area."
Promo Code Support
Customers can enter a promo code during enrollment. The form validates the code in real time:
- Checks that the code exists, is active, and has not exceeded its maximum uses
- Displays the discount type (percentage or fixed amount)
- Applies the promo to the new customer record
- Respects stacking rules — if the promo is not combinable with a referral code, the referral is dropped
Referral Codes
If you have referral tracking enabled, customers can enter a referral code alongside or instead of a promo code. Referral credits are processed after enrollment via the customer lifecycle hooks.
Custom Fields
The enrollment form supports vertical-specific custom fields based on your business type. For example, a bin cleaning business might collect:
- Bin count — number of bins to clean
- Bin size — 35gal, 65gal, 96gal
- Bin location — front yard, side of house, garage
- Trash day — day of the week trash is picked up
- Trash pickup time — morning or afternoon
These fields are configured through your vertical template and stored as custom_fields_json on the property record.
Payment Collection
When Stripe Connect is configured for your account, the enrollment form includes a payment step:
- A Stripe customer is created on your connected account
- A Setup Intent is generated to securely collect a payment method
- The
setup_client_secretis returned to the frontend for Stripe Elements - The customer's card or ACH details are saved for future auto-billing
If Stripe is not connected, the payment step is skipped and you can collect payment manually.
Duplicate Detection
The enrollment form prevents duplicate signups:
- Email check — rejects submissions if an active customer with the same email exists
- Address check — rejects submissions if an active property with the same address exists
Canceled customers are excluded from duplicate detection, allowing re-enrollment.
Embedding on Your Website
The enrollment form is accessible at:
https://nextroute.app/enroll/{your-tenant-slug}You can link to this URL from your website, or embed it in an iframe:
<iframe
src="https://nextroute.app/enroll/your-business-slug"
width="100%"
height="800"
frameborder="0"
></iframe>Branding
The enrollment form automatically uses your business branding:
- Logo — from your General Settings
- Business name — displayed in the form header
- Color scheme — matches your configured brand colors
- Vertical terminology — uses your industry-specific terms (e.g., "bins" vs. "properties")
Enrollment Confirmation
After a successful enrollment, the system:
- Sends a confirmation email to the customer
- Creates the customer and property records
- Syncs the customer to the appropriate route template
- Logs the enrollment event for your records
Related
- Customer Portal — self-service portal for existing customers
- Service Zones — geographic areas that control enrollment validation
- Service Plans — pricing and frequency options shown on the form
- Promo Codes — discount codes for enrollment