Advanced Configuration: CRM, Form Behavior & Webhooks

The Advanced Configuration card in Tool Settings controls what happens when quotes and bookings are submitted: CRM behavior (contacts, notes, opportunities, pipelines, calendars, tags), form behavior (internal tool mode), and webhooks for Zapier or other CRMs. Forms always accept URL params (e.g. ?contactId={{Contact.Id}}) for pre-fill from your CRM. Set your CRM connection (API token and Location ID) in Dashboard → Settings → CRM Integration first; this card is per-tool.

Where to find these settings

Go to DashboardTools → your tool → Settings. The settings are grouped into cards: Site Customization, Pricing Structure, Service Area(s), Query Parameters & Tracking, and Advanced Configuration. Expand Advanced Configuration to access CRM, form behavior, and webhook options. Each section below matches the card.

Create/update contact

When enabled, CleanQuote creates or updates a contact in your CRM using the customer's name, email, phone, and address from the quote form. The contact is linked to the opportunity and note so you have one record per lead.

Create note

When enabled, a note is added to the contact (or opportunity) with a summary of the quote: selected services, pricing, and any form answers. Useful for quick follow-up without reopening the quote.

Create Quote

When enabled, CleanQuote creates a Quote custom object in your CRM with the full quote details. Use this if you have a custom object schema for quotes in your CRM and want to sync structured data (e.g. for reporting or workflows).

Create opportunity

When enabled, a sales opportunity is created in your CRM and linked to the contact. You can choose the default pipeline and stage, and optionally route opportunities to different pipelines based on UTM parameters (e.g. utm_source=google).

Default Pipeline and Default Starting Stage

If Create opportunity is on, these set which pipeline and stage new opportunities use when no UTM routing rule matches. Create a pipeline in your CRM first; CleanQuote will list your pipelines and their stages in the dropdowns.

Pipeline Routing by UTM

Optional rules that send opportunities to different pipelines or stages based on URL parameters. For example: when utm_source contains google, use pipeline "Paid Ads" and stage "New Lead." First matching rule wins; match type can be contains, equals, or starts_with. You can also set per-rule opportunity status, assigned user, source, and tags.

Use quoted amount for opportunity value

When enabled, the opportunity's value in your CRM is set to the quoted total from CleanQuote. This helps with pipeline value and reporting.

Quoted amount field (contact custom field)

The CRM contact custom field where the quoted amount is stored (e.g. quoted_cleaning_price). Use the search box to find your field by name or key; type to narrow the list. The field must exist in your location as a numeric or currency custom field.

Opportunity assigned to

The CRM user (team member) to assign new opportunities to by default. Only applies when not overridden by a UTM routing rule.

Opportunity source

A label for where the opportunity came from (e.g. "Quote Widget", "Website"). Stored in your CRM's opportunity source field for reporting and segmentation.

Opportunity tags

Tags applied to the opportunity in your CRM. Use for segmentation, automation, or reporting (e.g. "quote", "cleaning"). You can search existing CRM tags or type new ones.

Appointment calendar and Call calendar

The CRM calendars used when a lead books an appointment or requests a callback from the quote flow. Select the calendar that should receive the booking. CleanQuote shows only calendars your API token can access.

Appointment user and Call user

The CRM user whose availability is shown for that calendar. Often one user per calendar; select the user that owns the appointment or call calendar you chose above.

Redirect after appointment booking / Appointment redirect URL

When Redirect after appointment booking is on, the customer is sent to the URL you enter (e.g. a thank-you page) after they confirm an appointment. Leave blank to stay on the CleanQuote confirmation screen.

Form behavior

Settings that affect how the quote form behaves when embedded or used internally.

  • URL params (pre-fill): Forms always accept ?contactId={{Contact.Id}} (or ghlContactId). When present, CleanQuote fetches name, phone, email, and address from the CRM and lands the user on the address step. Use this in iframes, links, or anywhere you pass a contact ID.
  • Internal tool only: Contact info is collected at the end (optional Save quote and create contact). The quote summary is streamlined: Book an appointment remains available; Schedule a callback is not shown. Use for internal quoting (e.g. office staff) rather than customer-facing booking.

In-service tags and Out-of-service tags

Tags applied to the contact when their address is inside (in-service) or outside (out-of-service) your service area polygon. Useful for filtering leads by coverage or triggering different follow-up in your CRM.

Appointment booked tags

Tags applied to the contact when they successfully book an appointment from the quote flow. Use for automation (e.g. send confirmation) or reporting.

Quote completed tags

Tags applied to the contact when they complete the quote (reach the quote result page). Use to segment "got a quote" leads from general inquiries.

Disqualified lead tags

Tags applied to the contact when they select a "disqualify" option in the survey (e.g. out of scope, not interested). Use to segment or automate follow-up for disqualified leads.

Webhooks (Zapier or other CRMs)

If you use Zapier, Make, or another CRM instead of (or in addition to) the built-in CRM, you can send events to a webhook URL. Turn on Enable webhook and enter your webhook URL (e.g. a Zapier catch hook). CleanQuote will POST a JSON payload to that URL when any of these events occur:

  • out_of_service_area — Address is outside your service area (from the service area check, or when the out-of-service form is submitted).
  • in_service_area — Address is inside your service area (from the service area check).
  • quote_summary_viewed — Customer reached the quote result/summary page.
  • appointment_booked — Customer successfully booked an appointment (or call).

Each payload includes event, toolId, timestamp (ISO string), and event-specific data (e.g. inServiceArea, lat/lng for service area; contactId, appointmentId, date, time for appointment booked). Use these in Zapier or your automation to trigger workflows.

Need to set up the connection first? Add your PIT token and Location ID in Settings → CRM Integration. See CRM integration (PIT token & Location ID).