# Get Event
Source: https://docs.flashquotes.com/api-reference/event/get
GET /events/{id}
Retrieve a single event, optionally expanding related objects
Retrieves the event with the given id.
By default the response includes the event's own scalar fields plus the foreign-key ids for related objects (`bookingId`, `locationId`, `eventBriefId`). Relations are inlined only when requested via `expand[]`.
## Expanding related objects
Pass one or more `expand[]` query parameters to inline related objects. On this endpoint, paths are written as-is — no prefix.
```bash theme={null}
curl "https://app.flashquotes.com/api/events/evt_8K3aN1qV2x?expand[]=booking.lead&expand[]=services" \
-H "x-api-key: $FLASHQUOTES_API_KEY"
```
Allow-listed expand paths:
| Path | Adds |
| ------------------- | ----------------------------------------------------------- |
| `location` | The event's `location` object |
| `services` | The event's `services` array |
| `staff` | The event's `staff` array |
| `addons` | The event's `addons` array |
| `resources` | The event's `resources` array |
| `booking` | The parent `booking` object |
| `booking.lead` | `lead` inside `booking` (auto-promotes `booking`) |
| `booking.eventType` | `eventType` inside `booking` (auto-promotes `booking`) |
| `booking.invoices` | `invoices` array inside `booking` (auto-promotes `booking`) |
Requesting any nested `booking.*` path automatically expands `booking` itself — you do not need to list `booking` separately.
### Expanded response
With `expand[]=booking.lead&expand[]=booking.invoices`, the response inlines the nested objects under `booking`:
```json theme={null}
{
"object": "event",
"id": "evt_8K3aN1qV2x",
"booking": {
"object": "booking",
"id": "bkg_4F2yL8",
"lead": {
"object": "lead",
"id": "led_2T7nC4",
"companyName": "Acme",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane@acme.com"
},
"invoices": [
{
"object": "invoice",
"id": "inv_9P5xK3",
"status": "Paid",
"total": 250000,
"amountPaid": 250000,
"amountDue": 0,
"url": "https://app.flashquotes.com/invoice/..."
}
]
}
}
```
### Limits
* Maximum **20** expand paths per request (duplicates are deduplicated).
* Maximum nesting depth of **4** segments.
* Unknown or malformed paths return `400`.
# Get Event (Legacy)
Source: https://docs.flashquotes.com/api-reference/event/get-legacy
GET /event/getEventData/{event_id}
Legacy single-event endpoint — use Get Event for new integrations
**Deprecated.** This endpoint returns the original flat response shape. It is maintained for backwards compatibility only. For new integrations, use [`GET /events/{id}`](/api-reference/event/get), which supports the standard public API conventions (`object` discriminators, `expand[]`, slim canonical shapes, and the standard error envelope).
This endpoint returns comprehensive information about a specific event, including its location, resources, staff assignments, and associated booking details.
### Response
The response includes a detailed event object containing:
* Event identification and basic details
* Location information (venue name, address)
* Assigned resources (equipment, machines)
* Staff assignments
* Associated addons
* Booking status and details
* Event brief reference
### Common Use Cases
* Retrieving event details for display
* Checking resource and staff assignments
* Verifying event location and timing
* Accessing booking information
* Confirming addon selections
### Notes
* The event ID must be valid and associated with your company
* Returns a 404 error if the event is not found
* All event times are returned in ISO 8601 format with timezone
* Access requires a valid API key with appropriate permissions
### Migrating to `GET /events/{id}`
The new endpoint returns a slim default body with foreign-key ids; relations move behind `expand[]`. Key mappings:
| Legacy (top-level flat) | v2 (nested via expand) |
| ----------------------------------------------------------- | ------------------------------------------------------------- |
| `leadCompanyName` | `booking.lead.companyName` (with `expand[]=booking.lead`) |
| `booking.eventTypeName` | `booking.eventType.name` (with `expand[]=booking.eventType`) |
| `location`, `resources`, `staff`, `addons` (always present) | Available via `expand[]=location`, `expand[]=resources`, etc. |
# List Events
Source: https://docs.flashquotes.com/api-reference/event/list-events
GET /events
List events with cursor pagination, date-range filters, and optional expand
Returns a paginated list of events for your company, newest first. Supports Stripe-style range filters on `service_start_time` and `created_at`, equality filters on `location_id` and `booking_id`, cursor-based pagination, and inline expansion of related objects.
```bash theme={null}
curl "https://app.flashquotes.com/api/events?limit=25&service_start_time[gte]=2026-06-01T00:00:00Z&expand[]=data.location" \
-H "x-api-key: $FLASHQUOTES_API_KEY"
```
## Pagination
List endpoints use cursor-based pagination — pass the `id` of the last event in the previous page as `starting_after`:
```bash theme={null}
# First page
GET /api/events?limit=25
# Next page
GET /api/events?limit=25&starting_after=evt_8K3aN1qV2x
```
The response includes a `hasMore` flag indicating whether further pages exist.
## Date-range filters
`service_start_time` and `created_at` accept Stripe-style bracket-notation operators (`gt`, `gte`, `lt`, `lte`). Values must be full ISO 8601 datetimes with a timezone designator (`Z` or `±HH:MM`):
```
?service_start_time[gte]=2026-06-01T00:00:00Z
&service_start_time[lt]=2026-07-01T00:00:00Z
```
Bare dates like `2026-06-01` are rejected — include the time and offset. Multiple operators on the same field combine as a range.
## Expanding related objects
`expand[]` accepts the same allow-list as the [single-event endpoint](/api-reference/event/get), with one difference: **every path must be prefixed with `data.`** because the objects you're expanding live inside the envelope's `data` array.
```
?expand[]=data.location
&expand[]=data.booking.lead
```
Limits: 20 paths max per request, depth 4 max (counted after stripping the `data.` prefix). Unknown, malformed, or un-prefixed paths return `400`.
## Sort order
Results are always returned sorted by `createdAt desc`. Sort order is not configurable.
# List Events (Legacy)
Source: https://docs.flashquotes.com/api-reference/event/list-events-legacy
GET /event/get-events
Legacy date-range list endpoint — use List Events for new integrations
**Deprecated.** This endpoint returns the original wrapped response shape and is capped at a 7-day window. It is maintained for backwards compatibility only. For new integrations, use [`GET /events`](/api-reference/event/list-events), which supports cursor pagination, broader date-range filters, equality filters, and `expand[]` for related objects.
This endpoint returns a list of events that fall within the specified date range. You can optionally filter events by location.
### Response
The response includes an array of event objects containing:
* Event identification and basic details
* Location information (venue name, address)
* Assigned resources (equipment, machines)
* Staff assignments
* Associated addons
* Booking status and details
* Event brief reference
### Common Use Cases
* Retrieving events for a specific time period
* Checking event schedules by location
* Planning resource and staff allocation
* Reviewing upcoming bookings
* Generating event reports
### Notes
* Date ranges must be provided in ISO 8601 format with timezone offset (e.g., `2024-01-01T00:00:00-05:00`)
* **Maximum date range span is 7 days**
* Results are ordered by event start time
* Returns a 400 error if date format is invalid or date range exceeds 7 days
* Responses are wrapped in an array envelope
* Access requires a valid API key with appropriate permissions
### Migrating to `GET /events`
The new endpoint uses Stripe-style range filters and cursor pagination instead of a single required date range:
| Legacy parameter | v2 equivalent |
| -------------------------------- | ----------------------------------------------------------------------------- |
| `event_starts_after` (required) | `service_start_time[gte]` (optional) |
| `event_starts_before` (required) | `service_start_time[lt]` (optional) |
| (7-day cap) | No range cap — use `limit` (default 10, max 100) and `starting_after` to page |
| `location` filter | `location_id` query parameter |
The response is the standard list envelope (`{ object: "list", url, hasMore, data }`) rather than the legacy wrapped array.
# Get Form Response
Source: https://docs.flashquotes.com/api-reference/form-response/get
GET /api/form-response/{id}
Retrieve detailed information about a specific form response
This endpoint returns comprehensive information about a specific form response, including all question responses and their associated questions.
The response format is optimized for Zapier integration, returning a flattened object structure where questions appear as keys with their corresponding answers as values. This makes it easy to map form data directly to other systems.
### Response
The response includes a detailed form response object containing:
* Form response identification and metadata
* Form and booking associations
* Question responses with:
* Question details (title, type, requirements)
* User's response data
* Question metadata (position, system links)
* Timestamps for creation and updates
### Common Use Cases
* Retrieving submission details for display
* Accessing customer responses
* Verifying form completion status
* Integrating with external systems
* Analyzing response data
### Notes
* The form response ID must be valid and associated with your company
* Returns a 404 error if the form response is not found
* All timestamps are returned in ISO 8601 format
* Access requires a valid API key with appropriate permissions
* Response data format varies based on question type
# Introduction
Source: https://docs.flashquotes.com/api-reference/introduction
Welcome to the Flashquotes API documentation
## Welcome to the Flashquotes API
The Flashquotes API enables you to programmatically access and manage your events, bookings, forms, invoices, and tasks. Our REST API provides endpoints for retrieving event data, creating tasks, managing form responses, and accessing invoice information.
## Plan access
What you can use depends on your plan:
* **Full REST API** — every endpoint in this reference: events, bookings, form responses, invoices, and tasks. Needs the **Scale** plan.
* **Zapier** — the endpoints the Flashquotes Zapier app uses. Included with **Pro** and above. [Set up Zapier →](/settings/integrations/zapier)
Upgrade anytime in [Plan Settings](https://app.flashquotes.com/settings/plans).
## Authentication
All API endpoints require authentication using an API key. You must include your API key in the request headers:
```bash theme={null}
'x-api-key: your_api_key_here'
```
You use one API key for everything. Find it in [Settings > Integrations](https://app.flashquotes.com/settings/integrations). On Pro, it works with the Zapier endpoints. On Scale, it also works with the full REST API. Keep it secret — never share it publicly.
## Base URL
All API requests should be made to:
```bash theme={null}
https://app.flashquotes.com/api
```
## Available Endpoints
Our API provides several endpoint groups:
Manage events, retrieve event details, and list events within date ranges
Create and manage tasks on events programmatically
Access form submission data and response details
Retrieve invoice information and payment details
## Response Format
All responses are returned in JSON format. Successful responses will have a 2xx status code, while errors will return appropriate 4xx or 5xx status codes with error details.
### Conventions
The current public API follows Stripe-style conventions:
* **`snake_case` query parameters, `camelCase` response keys.**
* Every returned object carries an **`object` discriminator** (e.g. `"object": "event"`) at the top of its JSON.
* List endpoints return a standard envelope:
```json theme={null}
{
"object": "list",
"url": "/api/events",
"hasMore": true,
"data": [ /* ... */ ]
}
```
* Default responses include only an object's own scalar fields plus the foreign-key ids for its relations. Related objects are inlined only when explicitly requested via `expand[]`.
### Expanding related objects
By default, an endpoint returns the object's own scalar fields plus foreign-key ids (e.g. an event includes `bookingId`, `locationId`, `eventBriefId`, but not the booking or location objects themselves). To inline a related object, pass its path in `expand[]`:
```bash theme={null}
GET /api/events/evt_123?expand[]=location&expand[]=booking.lead
```
**Dot notation** walks the object graph. `booking.lead` reads "expand the booking, then expand the lead inside that booking." Each path segment must be an allow-listed relation on its parent — unknown paths return `400`.
```jsonc theme={null}
// expand[]=booking.lead → lead nested inside booking
{
"object": "event",
"id": "evt_123",
"booking": {
"object": "booking",
"id": "bkg_456",
"lead": { "object": "lead", "id": "led_789", "...": "..." }
}
}
```
**Parent auto-promote.** Requesting any nested path automatically expands its parents. `expand[]=booking.lead` includes `booking` in the response even if you don't list `booking` separately.
**Multiple paths.** Repeat `expand[]` to combine paths. Comma-separated values are also accepted: `?expand[]=location,services`.
#### `data.` prefix on list endpoints
On list endpoints, each path **must** be prefixed with `data.` because the objects you're expanding live inside the envelope's `data` array, not at the top level:
```bash theme={null}
# Single object — no prefix
GET /api/events/evt_123?expand[]=booking.lead
# List — every path is prefixed with data.
GET /api/events?expand[]=data.booking.lead&expand[]=data.location
```
A list request that omits the `data.` prefix returns `400` with an `invalid_request_error` describing the offending path.
#### Limits
* Maximum **20** paths per request (duplicates are deduplicated, so `?expand[]=booking&expand[]=booking` counts once).
* Maximum nesting depth of **4** segments. On list endpoints, the `data.` prefix doesn't count against the depth — `data.a.b.c.d` is allowed.
* Paths must use only allow-listed relation names; the allowed paths are documented on each endpoint.
### Pagination
List endpoints use cursor-based pagination:
* `limit` — page size (default `10`, maximum `100`).
* `starting_after` — the `id` of the last item from the previous page.
The response `hasMore` flag indicates whether more pages are available.
### Date-range filters
Date fields on list endpoints accept Stripe-style bracket-notation operators: `[gt]`, `[gte]`, `[lt]`, `[lte]`. Values must be full ISO 8601 datetimes including a timezone designator (e.g. `2026-06-01T00:00:00Z` or `2026-06-01T00:00:00-05:00`).
```
?service_start_time[gte]=2026-06-01T00:00:00Z&service_start_time[lt]=2026-07-01T00:00:00Z
```
### Error envelope
Errors return a structured envelope:
```json theme={null}
{
"error": {
"type": "invalid_request_error",
"code": "invalid_parameter",
"message": "limit must be an integer between 1 and 100",
"param": "limit"
}
}
```
The `type` field is one of `api_error`, `invalid_request_error`, `authentication_error`, `permission_error`, `rate_limit_error`, or `idempotency_error`. The `code` field is a machine-readable identifier and `param` (when present) names the offending parameter.
## Need Help?
If you need assistance or have questions about the API:
* Email us at [support@flashquotes.com](mailto:support@flashquotes.com)
* Check our documentation for examples and guides
* Contact your account manager for enterprise support
# List Invoices
Source: https://docs.flashquotes.com/api-reference/invoice/list-invoices
GET /api/invoice/{booking_id}
Retrieve invoice IDs and URLs associated with a booking
This endpoint returns the invoice IDs and encrypted invoice URLs associated with a specific booking.
### Response
The response includes:
* `bookingId`: The ID of the booking
* `invoiceIds`: Array of invoice IDs associated with the booking
* `invoiceUrls`: Array of encrypted invoice URLs that can be used to access the invoices
### Example Usage
Here's an example of how to use this endpoint with curl:
```bash theme={null}
curl -X GET 'https://app.flashquotes.com/api/invoice/book_123' \
-H 'x-api-key: your_api_key_here'
```
### Common Use Cases
* Retrieving invoice URLs for a booking
* Accessing invoice documents through encrypted URLs
* Tracking which invoices are associated with a booking
# Create Task
Source: https://docs.flashquotes.com/api-reference/task/create
POST /api/task/create
Create a task for a specific event
This endpoint creates a task on an event. Tasks are automatically added to the event's Admin checklist.
### Request Body
The request body should be a JSON object with the following fields:
| Field | Type | Required | Description |
| ------------- | ------ | -------- | ----------------------------------------------------------------------- |
| `eventId` | string | Yes | The ID of the event to create the task on |
| `description` | string | Yes | The task description |
| `dueDate` | string | No | Due date for the task in ISO 8601 format (e.g., `2025-10-20T00:00:00Z`) |
### Example Request
```bash theme={null}
curl -X POST https://app.flashquotes.com/api/task/create \
-H "x-api-key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"eventId": "cm123abc456",
"description": "Call venue to confirm table and chair arrangements",
"dueDate": "2025-10-20T00:00:00Z"
}'
```
### Example Response
```json theme={null}
{
"success": true,
"task": {
"id": "cm456def789",
"description": "Call venue to confirm table and chair arrangements",
"dueDate": "2025-10-20T00:00:00.000Z",
"eventId": "cm123abc456",
"completed": false,
"createdAt": "2025-10-13T14:22:00.000Z"
}
}
```
### Response Fields
| Field | Type | Description |
| ------------------ | -------------- | ------------------------------------------------------------ |
| `success` | boolean | Whether the task was created successfully |
| `task.id` | string | Unique identifier for the created task |
| `task.description` | string | The task description |
| `task.dueDate` | string \| null | Due date in ISO 8601 format, or null if not provided |
| `task.eventId` | string | ID of the event this task belongs to |
| `task.completed` | boolean | Whether the task is completed (always `false` for new tasks) |
| `task.createdAt` | string | Timestamp when the task was created |
### Common Use Cases
* Automatically create follow-up tasks from external systems
* Trigger task creation based on booking events or customer actions
* Bulk import tasks from spreadsheets or other systems
* Automatically create additional tasks after event booking
### Error Responses
**400 Bad Request** - Invalid request body or date format
```json theme={null}
{
"error": "Invalid request body",
"details": {
"description": {
"_errors": ["Task description is required"]
}
}
}
```
**404 Not Found** - Event doesn't exist or doesn't belong to your company
```json theme={null}
{
"error": "Event not found"
}
```
**500 Internal Server Error** - Unexpected error occurred
```json theme={null}
{
"error": "Internal server error"
}
```
### Notes
Date format must be valid ISO 8601 (e.g., `2025-10-20T00:00:00Z`)
# Bookings
Source: https://docs.flashquotes.com/bookings
Learn how to manage bookings, handle multi-day events, and track event details in Flashquotes
## Overview
A booking in Flashquotes represents a client's confirmed service agreement, which may include one or multiple event days. Each booking serves as an umbrella that contains payment terms, event details, and client information. Bookings can be created automatically through your booking form or manually for special cases.
## Booking Structure
In Flashquotes, there's an important distinction between bookings and events:
* **Booking**: The overall service agreement that includes payment terms and client details
* **Event**: A single day of service within a booking
One booking can contain multiple events (service days), all managed under a single invoice.
Each booking includes:
* Booking form responses
* Payment information
* Client details
* Associated events
* Invoice details
* Dynamic booking confirmation
If your booking has a signed contract, you can view and download it from the **Contract** tab on the booking page. [Learn more about contracts →](/templates/contracts/overview)
## Creating and Managing Bookings
### Manual Booking Creation
To manually create a booking: 1. Navigate to the
[Bookings](https://app.flashquotes.com/bookings) page 2. Click the `New
Booking` button in the top right 3. Enter booking details: - Client
information - Payment terms - Event details - Service requirements
Manual booking creation is particularly useful for corporate clients with
special payment terms or recurring conventions.
### Managing Multiple Events
To add additional event days to a booking:
1. Navigate to the booking view
2. Locate an existing event
3. Click the `Copy` button next to the event
4. Select the new date
5. Customize the timeline and details as needed
This is useful for:
* Adding setup days
* Creating multiple service days
* Scheduling recurring events
Multi-day bookings allow you to:
* Manage multiple events under one invoice
* Create different timelines for each day based on service days from the original quote
* Track setup and service days separately
* Maintain consistent client information across all event days
* Handle complex scheduling like wedding weekends or corporate events
## Booking Confirmation
### Dynamic Confirmation Page
The booking confirmation page provides clients with:
* Most up-to-date event information
* Invoice payment links
* Site contact details
* Parking and loading information
* Event timeline for each service day
The confirmation page updates automatically whenever you make changes in the
admin panel, ensuring clients always have access to the latest information.
### Sharing Confirmations
To share a booking confirmation:
1. Open the booking
2. Click `More Actions` in the top right
3. Select `Share Confirmation Link`
4. Send the link to your client
### Booking Confirmation Email
Flashquotes automatically emails your customer a confirmation whenever a booking is completed. This is a system email — it sends for every booking and is separate from (and in addition to) any [workflow emails](/workflows/overview) the booking triggers.
**How it's sent:**
* **To:** the booking contact's email address
* **From:** your company name, with replies routed to your company contact email
* **Subject:** "Your booking with \[Your Company] is confirmed"
**What it looks like:**
1. **Your logo** at the top, if you've uploaded one in [Branding](/settings/branding)
2. **"Your booking is confirmed"** headline with a short thank-you note addressed to your customer by name
3. **Event details** — the event date with start time, and the event address
4. **"See all booking details" button** — styled with your brand color, linking to the customer's [confirmation page](#dynamic-confirmation-page)
5. **Contact footer** — "Questions?" with your company name and contact email
Your team gets its own heads-up too — anyone with new-booking alerts turned
on in their notification preferences receives an email whenever a new
booking comes in.
## Financial Management
### Payment Tracking
From the booking view, you can:
* View cards on file
* See deposit payment details
* Record manual payments (ACH/check)
* Access and edit invoices
To configure payment terms for your quotes, see our
[Booking Flow guide](/contacts/booking-flow).
### Invoice Integration
Each booking is associated with a single invoice, allowing you to:
* Track payments
* Manage multiple event charges
* Handle recurring billing
* Process deposits
## Export Bookings Data
### CSV Export
Export your booking data to CSV format for business analytics, accounting reconciliation, and operational reporting.
Go to the [Bookings](https://app.flashquotes.com/bookings) page
Click the **Export to CSV** button in the top toolbar
Your browser downloads a CSV file with up to 1,000 bookings
#### Export Contents
The booking export includes:
* **Client Details**: Name, email, phone, company
* **Event Information**: Dates, types, guest counts, locations
* **Financial Data**: Total amount, deposits, payments, balance due
* **Service Details**: Resources, staff assignments, timelines
* **Booking Status**: Confirmed, tentative, cancelled
* **Form Responses**: Custom field data from booking forms
#### Common Uses
* **Accounting**: Reconcile bookings with QuickBooks or other accounting software
* **Analytics**: Analyze booking trends, popular services, and seasonal patterns
* **Operations**: Plan resource allocation and staff scheduling
* **Marketing**: Track conversion rates and ROI from different channels
The export respects your current filters. Apply date ranges or status filters before exporting to get specific data subsets.
## Best Practices
1. Use manual booking creation for clients with special requirements
2. Regularly verify booking details are up-to-date
3. Utilize the copy feature for recurring events
4. Keep client confirmation links accessible
5. Monitor payment status regularly
6. Export data regularly for backup and analysis
## Next Steps
After creating a booking:
* [Set up event details](/events)
* [Manage invoices](/invoices)
* [Export contact data](/imports-exports/export-contacts)
* Track payment status
* Coordinate with your team
# Calendar
Source: https://docs.flashquotes.com/calendar
View and manage all your events, quotes, tasks, and payments in one place with the Flashquotes calendar.
Use the calendar to see everything happening in your business — booked events, open quotes, tasks, payments, and more — across day, week, month, or agenda views.
To open it, go to **Event Schedule** in the sidebar and switch to **Calendar** view using the toggle at the top of the page.
## Switch calendar views
The calendar defaults to **Week** view. To change it:
1. Click the **view selector dropdown** in the top-right corner of the calendar.
2. Choose **Day**, **Week**, **Month**, or **Agenda**.
On mobile, only **Day** and **Agenda** views are available.
## Navigate dates
* Click **Today** to jump back to the current date.
* Use the **back/forward arrows** to move by day, week, or month.
* Click the **date heading** to open a date picker and jump to a specific date.
## Show or hide item types
The left sidebar lets you toggle what appears on the calendar.
| Item | Color |
| ------------------------ | ---------------------- |
| Events | Indigo (solid) |
| Quotes (unbooked quotes) | Indigo (dashed border) |
| Blocked dates | Slate |
| Invoice due dates | Rose |
| Tasks | Amber |
| Scheduled payments | Teal |
| Quote expirations | Slate |
Toggle any item type on or off using the checkboxes in the **Calendar items** section. Your preferences save automatically.
## Filter by location, staff, or resource
In the **Filters** section of the left sidebar:
1. Select one or more **locations** to scope the calendar.
2. Use **Staff** and **Resources** filters to narrow further — these are faceted by the locations you selected.
3. Click **Clear all** to reset all filters.
The location filter only appears if you have multiple locations set up.
## Block out dates
1. Click **Block out dates** at the top of the left sidebar.
2. Fill in the date range and reason.
3. Save. The blocked period appears on the calendar in slate.
To remove a blocked date, click it on the calendar and select **Delete** in the slideover.
[Learn more about blocked dates →](/calendar-blocked-dates)
## Open item details
Click any calendar item to see its details.
| Item type | What happens |
| --------------------------------------- | ---------------------------------- |
| Booked event | Opens a detail slideover |
| Quote | Navigates to the quote detail page |
| Blocked date | Opens slideover to view or delete |
| Task, invoice, payment, or quote expiry | Opens a detail slideover |
## Switch timezones
In **Day** or **Week** view, a timezone button appears in the calendar header. Click it to switch the displayed timezone.
## Show service time vs. shift time
Events render with their **shift time** by default — the full window your crew is on the clock, including setup and teardown. Toggle to **service time** to show only the customer-facing window.
* **Shift time** — ideal for crew scheduling and resource planning
* **Service time** — ideal for spotting customer conflicts and reading the calendar at a glance
Use the **service time vs. shift time** toggle in the calendar header to switch.
## Multi-day events
Events that span more than one day render across each day they touch, so you can see the full footprint of a setup → event → teardown weekend without clicking into the event.
## Resource availability
Resource availability is displayed on each day to give you a snapshot view of which days have high resource availability and which days are nearly booked out.
[Learn more about resources →](/resources)
## Connect Google Calendar
To sync your calendar with Google Calendar, upgrade to Flashquotes Plus. The upsell option appears at the bottom of the left sidebar.
The calendar auto-scrolls to the current time when you first open it in Day or Week view — no need to scroll manually to find your next event.
# Product Updates
Source: https://docs.flashquotes.com/changelog/overview
New features and improvements to Flashquotes are released **every week**.
This changelog documents product updates and new features in Flashquotes. These updates are rolled out directly to the live application - no separate changelog feature exists within the app itself.
## Leads Is Now Pipeline and Contacts
The Leads page has been split into two views built around how you actually work — quotes to win, and people to know.
* **Pipeline** — every open quote on a kanban board, moving through stages from **New inquiry** to **Quote sent** to **Booked**. Drag cards between stages, spot 🔥 hot quotes where the client just engaged, and catch idle quotes before they go cold. Prefer rows? Flip to the list view.
* **Custom stages** — add, rename, and reorder stages to match your sales process
* **Contacts** — everyone you've quoted or booked in one searchable directory, with quote and booking counts, last activity, filters, and CSV export
[Explore the Pipeline →](/pipeline) · [Meet the Contacts page →](/contacts)
## Reorganized Navigation
The main sidebar has been streamlined so related tools live together and take fewer clicks to reach.
* **Services & items** — Services, add-ons, and resources are now unified under one section with tabs, replacing the separate top-level entries
* **Templates** — Quote templates and contracts share a single **Templates** section with tabs
* **Payments** — The former Payouts page is now a tab inside **Payments**, so payments, refunds, and payouts sit side-by-side
* **Event Schedule** — Events and Calendar are combined into one **Event Schedule** page with a List/Calendar toggle
* **Sales Tax under Reports** — The sales tax report has moved into **Reports**
* **Workspace switcher** — Switch between the companies you belong to from a new switcher at the top of the sidebar
Every page in your bookmarks still works — only the location in the sidebar has changed.
[Explore the updated navigation →](/quickstart)
## Per-Line-Item Discounts on Quotes and Invoices
Mark down a single service without touching the rest of the order — attach any discount directly to a line item on a quote or invoice.
* Pick an existing discount from the line-item editor's **Discount** picker, or create one inline with **+ New discount**
* Customers see the original price with a strikethrough next to the discounted price, along with the discount name
* Totals, taxes, and QuickBooks sync all use the discounted amount, so your books reconcile automatically
* Line-item discounts apply before any order-level discount, floor at \$0, and are never applied to gratuity
[Learn about per-line-item discounts →](/contacts/quotes#per-line-item-discounts)
## Group Services into Sections on Your Lead Intake Form
Organize 10+ services into named, collapsible groups so leads can find what they need without scrolling a wall of options.
* Add named sections (e.g. "Bar service", "Desserts") to the Services question on any form
* Drag services between sections, reorder sections, and rename them inline
* Leads see sections collapsed by default with a count — tap to expand
[Learn about lead intake forms →](/forms/lead-intake)
## Custom Themes for Your Lead Intake Form
Now you can design a theme for your lead intake form that fully matches your brand and website!
Open the design panel from the palette icon in the top-right of the form editor to customize colors, font, and corners and see the changes live on your form. You can even have different themes for different forms and will get live feedback on color pairs for the best form readability.
* **Copy from another form** — reuse a theme you've already built via the **Copy from** menu in the Design panel header
* **Reset theme** — restore the Flashquotes default, seeded from your company brand color
[Customize your form theme →](/forms/lead-intake#custom-themes)
## Add-on and Service Quantities on Events and Event Briefs
Quantities for add-ons and services now flow through to events and event briefs, so your team sees exactly how many of each item the customer ordered.
* Add-on and service quantities surface on the event details page and the [event brief](/events/event-brief)
* Special add-ons still appear as prominent yellow banners — now with quantity included
* Quantities update automatically when you edit the underlying quote or booking
[Learn more about event briefs →](/events/event-brief)
## Auto-Calculate Travel Fee When Adding Services
Add a service to a quote and the travel fee calculates automatically — no second step, no manual math.
* Auto-calculate travel fees when adding a new service line item to a quote
* Override or remove the calculated fee on any line item
* Configure per-service calculation with [service-level travel fees](/services/travel-fees)
[Learn about travel fees →](/services/travel-fees)
## Resource Availability and Calendar Improvements
See exactly when your resources are free, and view the calendar the way you actually work.
* **Resource availability** in the quote editor and on the calendar — spot conflicts before they happen
* **Service time vs. shift time** toggle on the calendar to plan around setup and teardown
* **Multi-day events** render cleanly across both days
[Learn more about resources →](/resources) and [calendar →](/calendar)
## Shortcodes in Line Item Descriptions
Use [quote shortcodes](/workflows/shortcodes/overview) inside Service and Add-on line item descriptions on your quotes.
* Personalize each line with guest count, event date, customer name, and more
* Edit descriptions inline with a rich text editor
* Shortcodes resolve when the quote is created
[Learn about shortcodes →](/workflows/shortcodes/overview)
## Custom Button Labels on Your Lead Intake Form
You can now edit the CTA button copy on your lead intake form directly in the form editor — no code, no settings panel.
* **First-page button** — defaults to **"Get Custom Pricing"** (or **"Get My Instant Quote"** when Instant Quoting is on)
* **Last-page button** — defaults to **"Get My Quote"** (or **"Get My Instant Quote"** when Instant Quoting is on)
In the form editor, hover the button to highlight it, click to edit, then press **Enter** or click outside to save. Leave it blank to restore the default. Labels are capped at 100 characters.
[Learn how to edit button labels →](/forms/lead-intake)
## Pricing by Event Type
Charge differently for the same service depending on the event type — wedding pricing, corporate pricing, festival pricing, set once per service.
* Set a price modifier for any event type
* Applies everywhere prices are calculated, including instant quoting
* Pairs with the new [Event Type form question](/forms/lead-intake)
[Learn about pricing →](/services/pricing)
## Event Type on Quotes and Booked Events
Ask customers what kind of event they're hosting, then surface that answer where it matters.
* New **Event Type** lead intake form question — configure and sort your own options
* Event type displays on the quote, the event details page, and booked events
* Use it for filtering, reporting, and event-type pricing
[Learn about lead intake forms →](/forms/lead-intake)
## Tiered Pricing for Volume Discounts
Offer volume discounts on services and add-ons by setting per-guest pricing tiers.
* **Service tiers** — drop the per-guest rate as guest counts climb, with an optional minimum hourly guests floor
* **Add-on tiers** — the same volume-discount logic applies to add-ons
[Learn about service pricing →](/services/pricing) and [add-ons →](/services/add-ons)
## Surge Pricing and Days-Out Modifier
Charge more when resource availability is low or when bookings come in late — automatically.
* **Surge pricing** — percentage uplift triggered when [resources linked to a service](/resources#service-specific-resources) are scarce on the event date (service-aware, no flat-fee option)
* **Days-out modifier** — modify pricing based on event lead time (upcharge rush jobs, premium-price far-out reservations, or both)
[See Scale plan features →](/settings/plans)
## Per-Staff-Hour Travel Billing
Bill drive time per staff member in addition to your per-mile, per-resource travel fee.
* Travel labor scales with crew size — the per-mile, per-resource charge still covers the vehicles
* Added on top of the existing travel fee (not subject to the mileage minimum)
[Learn about travel fees →](/services/travel-fees)
## Per-Shift-Hour Labor Pricing
Choose how hourly labor is counted on each service — by **shift hours** (full on-site time, including setup and teardown) or **service hours** (the customer-facing window only).
* Both modes exclude travel — bill drive time separately via [travel fees](/services/travel-fees)
* Pairs naturally with [per-staff-hour travel billing](/services/travel-fees) to itemize travel as its own line
[Learn about service pricing →](/services/pricing)
## Service-Level Travel Fees
Travel fees are now configured and calculated **per service** — each service on a quote gets its own travel fee based on its core resources.
* **Free Travel Radius**: Set a radius around your business with no travel charge — events outside the radius are charged on the full distance
* **Per-Service Settings**: Each service has its own price per mile and minimum fee
* **Resource-Aware**: Fees calculate from the resources needed for that specific service
* **Editable Line Items**: View the calculation breakdown and edit or remove travel fees per service
[Learn about travel fee settings →](/services/travel-fees)
## Platform Fee Flexibility
You set how to pay for the platform fee - either pass it to the end customer (**default**) or absorb it. Easily override your company's platform fee setting to absorb or pass the fee at a customer quote level.
For example, you can choose to absorb and not show any fee to certain customers.
[Learn about platform fee options →](/settings/plans#platform-fee)
## Staff & Resource Rules
Now you can always calculate the right number of staff and resources for each service, allowing you to dial in your autodraft and instant quotes!
Set per-service staffing rules that automatically calculate staff and resource quantities on quotes. Choose from four modes — Hourly Capacity, By Guest Count, By Duration, or By Guest Count + Duration — based on how your staffing scales.
[Learn more about Staff & Resource Rules →](/services/staff-resource-rules)
## Show or Hide Tip on Event Briefs
Control whether staff can see pre-paid gratuity amounts on event briefs. The setting lives on the event details page under the **Tip amount** field — click the inline link to toggle it on or off company-wide.
When hidden, the "Pre-paid gratuity" in the **Setup** section of the event brief will not be shown.
[Learn how to change the setting →](/events/event-brief#gratuity-visibility)
## Notes on Leads
Add notes directly to any lead. Create, edit, delete, and pin notes from the new **Notes** tab on the lead detail page. Pin important notes to keep them at the top, and use search to find what you need fast.
[Learn more about managing leads →](/contacts)
## Per-Unit Pricing for Services
Add per-unit pricing to any service — useful for services where you want to price based on user selected quantities.
* Set a unit name, price per unit, and optional min/max quantity limits
* Customers see a quantity selector on the lead intake form for services with unit pricing
[Learn more about service pricing →](/services/pricing)
## Invoice and Payment Exports
Improved sorting, filtering and search on the Invoices view as well as a new Payments view under Finance > Payments.
Additionally, you can now export both Invoice and Payments to CSV to support accounting and data analysis.
[Learn more about invoices →](/invoices) and [Learn more about exports →](/imports-exports/overview)
## Quote PDF Download
Download or print any quote as a PDF. Open a quote and click the menu icon to find the new **Download PDF** and **Print** options. The PDF includes your full quote details, line items, and pricing — ready to share offline.
[Learn more about the quote page →](/contacts/quote-view)
## Pay Full Balance at Booking
Customers with a deposit payment schedule now see a **"Pay full balance today"** checkbox on the booking form. When toggled, the full invoice amount due is charged in a single transaction instead of a deposit with a later balance payment.
[Learn more about payment terms →](/contacts/booking-flow)
***
## Quote Booked Workflow Trigger
Create workflows that fire automatically when a quote is booked. Select "When a quote is booked" as the trigger when creating a new workflow. Use booking and lead shortcodes in your message templates to personalize post-booking communications.
[Learn more about triggers →](/workflows/triggers)
***
## Hide Services from Lead Intake Form
Control which services appear on your public lead intake form. In the form builder, each service now has a toggle switch to show or hide it. Hidden services won't appear to customers but stay available for quotes you build manually.
[Learn more about the lead intake form →](/forms/lead-intake)
***
## New Booking Shortcodes
Six new shortcodes are available for booking-based workflow templates:
* `{{booking.first_event_end_date}}` and `{{booking.first_event_end_time}}` — end of the first event
* `{{booking.last_event_start_date}}` and `{{booking.last_event_start_time}}` — start of the last event
* `{{booking.first_event_address}}` — venue address
* `{{booking.first_event_guest_count}}` — guest count (shows "TBD" if not set)
[View all shortcodes →](/workflows/shortcodes/overview)
## Multiple Quote Follow-Up Workflows
Create as many Quote Sent workflows as you need. Previously limited to one, you can now build different follow-up sequences for different situations — and choose which workflow to enroll a quote in when sending.
* Designate a default workflow per trigger type
* Default is pre-selected in the send quote modal
* Switch workflows per quote as needed
[Learn more about workflows →](/workflows/overview)
## Per Guest Per Hour Add-on Pricing
A new add-on pricing type lets you charge based on guest count and service duration combined. Set a per-guest-per-hour rate, and the price calculates automatically: rate x guests x hours.
**Example**: $2/guest/hr add-on with 50 guests, 1 day, 4 hours = $400
[Learn more about add-on pricing →](/services/add-ons)
## Calendar Month View
The calendar is completely rebuilt. You now have four views, a smarter sidebar, and full control over what you see.
**Views**
* Day, Week, Month, and Agenda views (Week was the only option before)
* On mobile, Day and Agenda views only
* Week and Day headers include a timezone switcher
* Calendar auto-scrolls to current time on load
**Sidebar**
* Toggle visibility for Events, Quotes, Blocked dates, Invoice due dates, Tasks, Scheduled payments, and Quote expirations
* Filter by Location, Staff, and Resource — Staff and Resource filters update based on selected locations
* "Block out dates" button for quick date blocking
* "Clear all" resets all filters at once
**Clicking items**
* Events, Tasks, Invoices, and Payments open a detail slideover
* Quotes navigate directly to the quote page
* Blocked dates let you view or delete them
Your sidebar visibility preferences save automatically in your browser.
[Learn more about the calendar →](/calendar)
## Service-Specific Add-ons
You can now control which add-ons are available for each service. When a customer selects services on a quote request form, only add-ons linked to those services are shown.
* **Configure per service** — On the service detail page, use the "Linked Add-ons" section to select which add-ons apply
* **Multiple services** — When multiple services are selected, the customer sees every add-on linked to any of the selected services
* Add-on options update instantly as customers change their service selection on forms
[Learn more →](/services/core-services#service-specific-add-ons)
***
## Service-Specific Resources
You can now control which resources are eligible for each service, ensuring the right equipment is matched to the right services.
* **Configure per service** — On the service detail page, use the "Linked Resources" section to select which resources can fulfill the service
* **Date selection** — The date picker on your lead intake form now reflects only the resources linked to the selected services
* **Availability badges** — Quote presentation and booking form availability badges update based on linked resources
* **Multi-day events** — The date picker checks that linked resources are available for every consecutive day, not just the start date
* **Multiple services** — When a quote includes multiple services, only resources linked to all selected services count toward availability
[Learn more →](/services/core-services#service-specific-resources)
## Conditional Logic for Booking Forms
Show or hide form pages based on what a customer has already selected. Set rules like "show this page when the service selected is the Premium Package" or "show this page when the Custom Branding add-on is included." Flashquotes automatically skips hidden pages and drops their required fields.
**How it works:**
* Open any booking form and go to the new **Logic** tab
* Set visibility conditions per page using the service or add-on the customer selected
* Pages match on ANY rule (OR logic), or show always if no rules are set
* Hidden pages are skipped automatically and their fields won't block form submission
Only available for booking forms. Lead intake form support is coming soon.
[Set up conditional logic →](/forms/conditional-logic)
## New Pricing Options
* **Per unit per guest add-on pricing** — Add-ons that scale by quantity and guest count (and days); quantity limits apply. [Learn more →](/services/add-ons)
* **Minimum price for add-ons** — Optional floor for variable-rate add-ons; if the calculated price is below the minimum, the minimum is used. [Learn more →](/services/add-ons)
* **Per guest per hour service pricing** — Service price scales with both guest count and event duration (e.g. \$3/guest/hr for bar service). [Learn more →](/services/pricing)
***
## QuickBooks Deposit Sync Improvements
QuickBooks deposits now sync based on actual Stripe payouts instead of being created immediately with each payment. This aligns your QuickBooks records with real bank deposits for easier reconciliation.
**What changed:**
* **Stripe payments**: Deposits are created automatically when Stripe sends the payout to your bank, grouping multiple payments into a single deposit that matches your bank statement
* **Manual payments** (cash, check): Continue to create deposits immediately when synced
* **Payout trace ID**: Each deposit includes the Stripe trace ID for automatic bank reconciliation
* **Failed payouts**: If a Stripe payout fails, the corresponding deposit is automatically removed
[QuickBooks sync docs →](/finance/quickbooks-sync) | [QuickBooks integration →](/settings/integrations/quickbooks)
***
## Saved Filters & Sorting on Leads Table
Your lead table filters and sort preferences are now automatically saved and restored when you return to the page. No more re-applying the same filters every time you navigate away.
**What's saved:**
* Date range filter
* Lead status filter
* Source filter
* Location filter
* Lead owner filter
* Sort column and direction
Preferences are saved per company, so switching between companies loads the right view for each. Click **Clear filters** to reset everything back to defaults.
[Learn about managing leads →](/contacts)
## Global Currency Support
Flashquotes now supports multiple currencies and locales, enabling businesses outside the United States to quote, invoice, and accept payments in their local currency.
**Supported Currencies:**
| Currency | Code | Symbol | Locales |
| ----------------- | ---- | ------ | ------- |
| US Dollar | USD | \$ | en-US |
| British Pound | GBP | £ | en-GB |
| Australian Dollar | AUD | \$ | en-AU |
| Canadian Dollar | CAD | \$ | en-CA |
Currency and locale are configured during company onboarding based on your country. All amounts — quotes, invoices, payments, and reports — display in your company's currency with locale-appropriate formatting.
[Learn about company settings →](/settings/general#currency-and-locale)
## Google Analytics & Tag Manager Integration
Finally know which marketing channels are actually driving bookings. Connect Google Analytics 4 or Google Tag Manager to track every step of your lead funnel — from form view to submission.
**What You Can Track:**
* **Form views** — See how many people land on your intake form
* **Form starts** — Know when someone begins filling out your form
* **Lead conversions** — Track successful submissions as conversions
UTM parameters are automatically captured, so you can attribute leads back to specific campaigns, ads, and traffic sources. Build conversion funnels in GA4, optimize your ad spend, and finally prove ROI on your marketing efforts.
Using Google Tag Manager? Push events to your dataLayer to fire Facebook Pixel, LinkedIn Insight Tag, TikTok Pixel, and any other tracking tools — all from one place.
[Set up Google Analytics →](/settings/integrations/google-analytics) | [Set up Google Tag Manager →](/settings/integrations/google-tag-manager)
## Enhancements to Leads Dashboard
We gave the lead table some love with faster data retrieval and more functionality!
**New Columns**
* Upcoming Bookings count - View future confirmed events
* Lead Created date
* Latest Quote date
* Lead Owner - the company member assigned to this lead
* Latest Communication - See the date of your last email with the lead
**Improved Functionality**
* All columns are sortable
* Lead owner filter (Plus/Pro plans)
* Sticky first column for easier scrolling on wide tables
The enhanced table gives you instant visibility into lead engagement and helps prioritize follow-up actions.
[Learn about managing leads →](/contacts)
## Bulk Enroll Bookings in Workflows
Save time by enrolling multiple upcoming bookings into workflows at once.
**Key Features**
* Select multiple bookings with upcoming events
* See booking details including event name, date, and location
* Only eligible bookings appear (future events, not already enrolled)
Perfect for enrolling existing bookings when you create a new pre/post-event workflow.
[Learn about bulk enrollment →](/workflows/workflow-enrollments#bulk-enrolling-bookings)
## Lead Owner Assignment
Assign leads to specific team members for better accountability and organization. Lead owners appear in the lead table and can be used as a filter to view your assigned leads.
**Key Features**
* Assign leads from the lead edit drawer
* See lead owner in lead header and table
* Filter leads by owner (Plus/Pro plans only)
* Internal support accounts automatically hidden from assignment lists
**Plan Availability**
* Plus: Assign leads to team members
* Pro: Assign leads to team members
Perfect for teams managing leads collaboratively or tracking individual team member performance.
[Learn about managing leads →](/contacts)
## Digital Contracts
Add contracts to your booking flow with electronic signatures. Customers review and sign contracts before payment, allowing you to include a formal contract on any of your quotes.
**Key Features**
* Rich text editor with headers, lists, and signature blocks
* Dynamic shortcodes for personalized contract content
* Electronic signature capture with legal acknowledgment
* Signed contracts are linked to the booking for you and your client to reference
* Download and print signed contracts anytime
**Plan Availability**
* Plus: Up to 2 contract templates
* Pro: Unlimited contract templates
[Learn about contracts →](/templates/contracts/overview)
## Refunded Invoice Status
Invoices now display a "Refunded" status when all payments have been fully refunded.
**What changed:**
* Gray "Refunded" badge appears when net payments equal zero after refunds
* Refunded invoices don't count toward "amount due" or "overdue" totals
* Status updates automatically when refunds are processed
This makes it easier to distinguish fully refunded invoices from active ones at a glance.
[Learn about invoices →](/invoices)
## Redesigned Booking Experience with Native Payments
The customer booking experience has been completely redesigned with a streamlined step-by-step flow and integrated payment processing.
**Visual Progress Tracker**
* Clear step indicator showing progress through Details, Payment and Confirmation
* Clickable steps allow customers to navigate back and review their information
* Brand-colored theming matches your company colors
**Integrated Payment Experience**
* Customers complete payment directly within Flashquotes — no redirect to Stripe checkout
* Embedded Stripe Payment Element for secure card entry
* Real-time order summary updates as customers fill out their booking details
* Supports all payment term types: Full Payment, Deposit, Card on File, and Invoice Only
## Invoice Payment Breakdown
Invoices now display a detailed breakdown of all payments and their status, giving both you and your customers complete visibility into payment history.
**Payment Details**
* Each payment shows the date, payment method, and amount
* Card payments display the card brand and last 4 digits (e.g., Visa •••• 4242)
* Pending payments are clearly distinguished from completed payments
* Refunds appear in the breakdown with negative amounts
**Automatic Receipt Links**
* Payments processed through Stripe automatically include a receipt link
* Click the payment amount to open the Stripe receipt in a new tab
* Perfect for customers who need receipts for expense reports or records
**Enhanced Invoice PDF**
* Payment breakdown is included when you download or print the invoice
* Card details and receipt links are preserved in the PDF export
[Learn about invoices →](/invoices)
## Quote Templates
Create multiple reusable quote designs tailored to different event types, services, or branding variations. Instead of a single global template, you can now build a library of templates and apply the right one to each quote with a single click.
* **Specialized designs for every occasion**: Create templates for weddings, corporate events, coffee service, and more — each with its own gallery images, testimonials, and add-ons
* **Faster quoting**: Apply templates instantly from the Quote Template tab on any quote, or set a default template for new quotes
* **Consistent branding**: Maintain professional presentation across your team while still customizing for specific event types
[Learn about quote templates →](/templates/quote-templates) | [Configure your quote page →](/contacts/quote-view)
## Simplified Quote Payment Terms
We've streamlined how you configure payment terms on quotes.
Using the new **booking flow**, you can now:
* Select how you want each quote to be paid directly from the quote editor
* Set a default payment terms to apply to all new quotes
* Easily add new payment terms without needing a separate booking form
[Learn about booking flow →](/contacts/booking-flow)
## Per-Resource Pricing
Set a "Price Per Resource" on services to automatically adjust quotes based on equipment or station counts. Perfect for businesses that charge per booth, per bar, per machine, or per station. The pricing formula now includes resource costs alongside base price, staff, and guest pricing.
[Configure service pricing →](/services/pricing)
***
## Void Invoices
Cancel invoices while keeping them in your records for accounting purposes. Voided invoices display a "Void" status and are excluded from revenue statistics, but remain visible in your invoice list for audit trail purposes. Available for invoices with no payments recorded.
[Learn about voiding invoices →](/invoices/voiding)
## Improved Travel Fee Calculations
Travel fees now scale with the number of core resources on your quotes. The updated formula calculates fees per resource per day, ensuring accurate pricing for multi-resource events. The minimum fee also scales accordingly - for example, a \$35 minimum with 2 resources over 2 days results in a \$140 effective minimum *(\$35 x 2 x 2)*.
[Learn about travel fee settings →](/services/travel-fees)
## Lead Intake Form Editor Upgrade
Your lead intake form is now fully customizable. Add custom questions, drag to reorder, move questions between pages, and remove what you don't need. The redesigned editor shows every question at a glance so you can build exactly the form your business needs.
[See how it works →](/forms/lead-intake)
## First Event Start Trigger
Automate customer communications around your actual event dates with two powerful new workflow triggers: **First Event Start** and **Last Event End**. These triggers allow you to send perfectly timed emails before, during, or after events based on when they actually occur.
### First Event Start Trigger
Trigger workflows based on when the first event in a booking begins. Perfect for pre-event reminders, preparation instructions, or day-of communications.
### Last Event End Trigger
Trigger workflows based on when the final event in a booking concludes. Ideal for post-event follow-ups, review requests, and relationship nurturing.
**How It Works:**
1. Create a workflow and select First Event Start or Last Event End as the trigger
2. Add email steps with delays relative to the event time (e.g., "2 days before" or "1 day after")
3. Publish the workflow
4. When bookings are created, workflows automatically enroll and schedule based on actual event dates
5. If event times change, workflow emails automatically reschedule
[Learn about workflow triggers →](/workflows/triggers) | [View all shortcodes →](/workflows/shortcodes/overview)
## Unified Email Inbox
Manage all your lead communications in one place with the new Inbox feature. View and organize Gmail messages synced from your connected accounts, see associated lead information at a glance, and mark emails as done to keep your inbox clean.
**Key Features:**
* **Thread-Based Organization**: Emails grouped by conversation with participant lists and message counts
* **Lead Integration**: Instantly see which leads are associated with each email thread via hover cards
* **Multi-Account Support**: Filter by different connected Gmail accounts
* **Mark as Done**: Remove emails from your inbox once handled, syncs back to Gmail
* **Real-Time Sync**: Email updates and label changes sync automatically with Gmail
[Learn more about the Inbox →](/inbox)
## Rich Text Editor for Special Notes
Special notes on quotes and events now use a visual rich text editor instead of Markdown. Format your internal notes with bold, italic, headings, lists, links, and dividers using familiar toolbar buttons - no Markdown syntax required.
**What's New:**
* **Visual Formatting Toolbar**: Format text with buttons instead of typing Markdown
* **Full Formatting Support**: Bold, italic, underline, strikethrough, headings (H1-H3), bullet and numbered lists, horizontal rules, and links
* **Keyboard Shortcuts**: Press `Cmd+Enter` (Mac) or `Ctrl+Enter` (Windows) to save quickly
* **Backwards Compatible**: Existing Markdown notes automatically convert when you edit them
Perfect for creating well-organized internal notes with clear structure and formatting. Special notes remain internal-only and are not visible to customers.
## Import Bookings from CSV
Save time migrating data or adding historical bookings with the new CSV import feature. Upload up to 100 bookings at once using a simple spreadsheet format, perfect for businesses transitioning from other systems or adding past events to Flashquotes.
**What's New:**
* **CSV Template**: Download a pre-formatted template with all required fields and example data
* **Column Mapping**: Upload your CSV and map columns to Flashquotes fields with auto-matching
* **Real-time Validation**: Errors are highlighted before import with specific guidance on fixes
* **Background Processing**: Large imports run in the background with progress tracking and detailed results
**How It Works:**
1. Download the CSV template from the Import Bookings page
2. Fill in your booking data with event details, client info, and pricing
3. Upload and map your columns to Flashquotes fields
4. Review validation, fix any errors, then import
5. Track progress and view results with success/failure breakdown
Imported bookings include all event details, timeline entries, and trigger event brief tasks automatically. Email notifications are not sent during import to avoid duplicate communications.
[Learn how to import bookings →](/imports-exports/import-bookings)
## Bulk Apply Admin Tasks to Upcoming Events
When you update your admin task templates, apply those changes to all upcoming events with one click. Go to Settings → Tasks → Admin Default Tasks, click the menu icon, and select "Apply to events" to sync your latest task checklist across all future bookings.
## Auto-Invite Staff to Calendar Events
Automatically manage Google Calendar attendees when staff is assigned to or removed from events. When enabled, assigned staff members receive calendar invitations via email, ensuring everyone knows about their scheduled events without manual invite management.
**Perfect For:**
* Teams that need calendar-based event notifications
* Ensuring staff have event details in their personal calendars
* Eliminating manual calendar invite workflows
* Keeping team schedules synchronized automatically
[Configure auto-invite settings →](/settings/integrations/google-calendar#auto-invite-staff-to-calendar-events)
***
## Manage Required Questions in Lead Intake Forms
Control which questions are mandatory for form submission with a simple toggle. Mark custom questions as required or optional to balance conversion rates with data collection needs.
**What's New:**
* **Required Toggle**: Easily mark questions as required or optional in the form editor
* **System vs User Required**: Some questions are required by Flashquotes and cannot be changed, while custom questions can be toggled
* **Smart Validation**: Required questions must be completed before form submission
[Learn how to manage required questions →](/forms/lead-intake#required-questions)
## Google Calendar Sync Timing Options
Choose whether calendar events sync based on **service time** (customer-facing event hours) or **shift time** (full staff shift including setup, breakdown, and travel). This affects how events appear in your Google Calendar - either showing just the service window or your complete time commitment for each booking.
[Configure calendar sync timing →](/settings/integrations/google-calendar#choose-service-time-or-shift-time)
## Shortcodes in Default Quote Email Body
Personalize your default quote email body with dynamic shortcodes like `{{lead.first_name}}`, `{{company.name}}`, or `{{quote.event_date}}`. Set your template once and every quote email automatically includes personalized details. Live preview shows how your email renders with real quote data before saving.
[Configure quote email settings →](/settings/quotes#quote-delivery) | [View all shortcodes →](/workflows/shortcodes/overview)
## Quote Requested Workflow Trigger
Automatically engage leads the moment they submit a quote request through your lead intake forms. The new Quote Requested workflow trigger enrolls leads in customized email sequences immediately after form submission, helping you nurture interest before you even send a formal quote.
**What's New:**
* **Automatic Enrollment**: Leads who submit your lead intake form are automatically enrolled in Quote Requested workflows
* **Customizable Sequences**: Create personalized email templates that send while you're preparing their quote
* **Smart Timing**: Engage leads during the critical window between request and quote delivery
* **Gmail Integration**: Choose which connected Gmail account sends workflow emails
**How It Works:**
When a lead submits your intake form, Flashquotes automatically enrolls them in any active Quote Requested workflows. These emails can acknowledge their submission, share your company story, provide helpful planning tips, or build excitement while you prepare their custom quote.
**Perfect For:**
* Immediate acknowledgment emails confirming quote request receipt
* Educational content about your services while leads wait
* Building trust and rapport before the first formal quote
* Keeping leads engaged during your quote preparation process
Quote Requested workflows complement the existing Quote Sent workflows, giving you complete automation coverage from initial inquiry through booking.
[Learn about workflow triggers →](/workflows/triggers)
[Track enrollments at the workflow level →](/workflows/workflow-enrollments#tracking-enrollments)
## Enhanced Quote Expiration for Last-Minute Bookings
Quotes now expire at **midnight the day before the event** instead of at the event start time. This prevents your team from having a last minute booking without first confirming that you can service the event.
**What Changed:**
* Event on Oct 27 at 2pm MST → Quote expires Oct 26 at 12am MST (previously expired at 2pm Oct 27)
* Expired last-minute quotes now show specialized messaging encouraging customers to contact your team
This change automatically applies to all new quotes and better supports last-minute event bookings.
## Workflow Management Enhancements
You can now customize workflow sequences to match your sales process:
* **Add Steps**: Insert additional follow-up emails at any position in your workflow with custom timing, subject and email body
* **Delete Steps**: Remove steps that don't fit your strategy (immediately stops them from sending, even for active workflows)
* **Resume Workflows**: Restart stopped workflows from the Lead Workflows tab when leads re-engage
[Learn about workflow customization →](/workflows/templates#customizing-your-workflow)
## Sign in with Microsoft
Users can now create accounts and sign in using their Microsoft work or personal accounts alongside the existing Google authentication option.
## Gmail Integration Enhancements
We've improved the email composer and workflow automation for [Pro/Plus subscribers](https://app.flashquotes.com/settings/plans) with Full Gmail Integration.
**What's New:**
* **Easily compose new email**: Click the email icon on any lead in the list view to start composing a new message
* **Workflow auto-stop on email reply**: When leads reply to emails, active quote follow-up workflows deactivate automatically. This ensures you never send automated follow-ups after a lead has already responded, maintaining a personal touch throughout the sales process.
[Learn more about gmail integration →](/settings/integrations/google-gmail-read)
## Google Calendar Selection
Choose exactly which Google Calendar receives your Flashquotes events. No more cluttering your primary calendar - sync events to dedicated event calendars for better organization.
**What's New:**
* **Calendar Selection**: Choose specific calendars for syncing
* **Smart Migration**: Events automatically move when you change calendars
* **Per-Location Control**: Different locations can sync to different calendars
* **Organized Schedules**: Keep personal and business events separate
**Perfect For:**
* Keeping Flashquotes events out of personal calendar
* Better calendar sharing with team members
* Taking advantage of GCal customizations like colors
[Set up calendar selection →](/settings/integrations/google-calendar#choose-a-specific-calendar)
## QuickBooks Custom Line Item Mappings
Fine-tune your accounting with custom QuickBooks mappings for specific services, add-ons, and service charges. This enhancement gives you granular control over how individual items sync to QuickBooks Online, allowing you to have more flexible accounting treatment for invoice line items.
**What's New:**
* **Item-Specific Mapping**: Override default mappings for individual services, add-ons, and service charges
* **Flexible Accounting**: Map specific items to different QuickBooks items for specialized accounting treatment
* **Easy Management**: Add, view, and delete custom mappings directly from QuickBooks settings
* **Priority System**: Custom mappings automatically override default line item type mappings
[Learn how to set up custom mappings →](/finance/quickbooks-custom-mappings) | [QuickBooks Integration →](/settings/integrations/quickbooks)
## Enhanced Google Integration Suite
We've significantly expanded our Google integration capabilities to help you streamline communication and scheduling. Flashquotes now offers a comprehensive Google integration with Gmail and Google Calendar sync.
**What's New:**
### Gmail Sending
Send quotes directly from your Gmail account to maintain conversation history in one place. Your emails remain in your Gmail inbox and sent folder, creating more personal connections with leads while using your existing email signature and branding. [Learn about Gmail sending →](/settings/integrations/google-gmail-send)
### Full Gmail Integration
Sync email activity from your leads directly into Flashquotes activity feeds. See the complete context of customer communications without switching between applications. Email threads automatically link to the correct leads and appear in activity feeds within minutes. [Enable full Gmail integration →](/settings/integrations/google-gmail-read)
### Google Calendar Sync
Automatically sync booked events to Google Calendar to maintain a unified view of your schedule. Flashquotes creates calendar events with event details, shift times, location, and links back to event details. Updates in Flashquotes automatically sync to Google Calendar, and you can configure different calendars per location. [Configure calendar sync →](/settings/integrations/google-calendar)
Get started by connecting your Google account in [Settings → Integrations](https://app.flashquotes.com/settings/integrations). Learn more in our [Google Integration overview →](/settings/integrations/google)
## Advanced Reporting Analytics
We've added three powerful new reports to help you analyze business performance and make data-driven decisions. These visualizations provide deep insights into resource utilization, customer behavior, and revenue patterns.
**New Reports:**
### 1. Service Asset Utilization
Track daily usage of your core service resources with a visual chart showing:
* Booked vs quoted assets over time
* Maximum capacity indicators
* Peak utilization dates
* Helps forecast busy periods and optimize resource allocation
### 2. Average Gratuity Analysis
Understand customer tipping patterns with detailed metrics including:
* Distribution of gratuity percentages selected
* Total gratuity revenue
* Average tip amounts
* Participation rates
* Helps optimize gratuity options and predict tip revenue
### 3. Top Clients by Revenue
Identify your most valuable customers with:
* Ranked list of top 10 revenue-generating clients
* Individual client contribution amounts
* Average revenue per client
* Helps focus retention efforts and recognize VIP relationships
**Business Benefits:**
* **Better Forecasting**: Visualize patterns to predict demand
* **Revenue Insights**: Understand income sources and concentration
* **Resource Planning**: Optimize inventory based on actual usage
* **Customer Intelligence**: Focus on high-value relationships
[View the Reports documentation →](/reports)
***
## Block Calendar Dates
You can now block specific dates to prevent new inquiries and automatically manage existing quotes. This powerful feature helps you manage capacity, holidays, and maintenance periods while keeping your calendar accurate.
**Key Features:**
* **Prevent New Inquiries**: Blocked dates can't be selected on lead intake forms
* **Auto-Expire Quotes**: Open quotes on blocked dates expire automatically
* **Bulk Selection**: Block up to 30 dates at once
[Learn how to block dates →](/calendar-blocked-dates)
## Improved Quote Expiration Management
We've enhanced how expired quotes work to protect your business from outdated pricing while giving you more control over expiration dates. These updates ensure customers always receive current pricing and availability.
**What's Changed:**
* **Expired Quote Protection**: Customers can no longer book expired quotes, preventing issues with outdated pricing or unavailable dates
* **Clear Customer Options**: When viewing expired quotes, customers see options to request a fresh quote or contact your company directly
* **Flexible Expiration Control**: Admins can now modify quote expiration dates from three convenient locations:
* Lead details page
* Quote edit page
* Quote view page
**Business Benefits:**
* **Pricing Protection**: Prevents bookings with outdated rates or discontinued services
* **Availability Accuracy**: Ensures dates are verified before booking
* **Reduced Disputes**: Eliminates confusion over old pricing
* **Extended Opportunities**: Easily extend quotes for leads still in negotiation
**Common Use Cases:**
* **Extend Active Negotiations**: Give prospects more time while discussions continue
* **Reactivate Expired Quotes**: Instantly make expired quotes bookable by setting a future date
* **Remove Expiration**: For special clients, remove expiration entirely
This update provides better protection for your business while maintaining flexibility to accommodate different sales scenarios. [Learn about managing expiration →](/contacts#managing-quote-expiration-dates) | [Configure quote settings →](/settings/quotes#expiration-settings) | [Handle expired quotes →](/contacts/sending-quotes#handling-expired-quotes)
***
## Enhanced Staffing Calculator Settings
The Lead and Take Form Builder now includes reorganized settings and new display options for the staffing calculator, giving you more control over how customers interact with service planning on your forms.
**What's New:**
* **Visual Counter Toggle**: Choose between an engaging visual staff counter or a simplified text-only display
* **Guest Count Increment**: Configure custom increment values (1-100) for the guest count +/- buttons
* **Reorganized Settings**: Cleaner layout with sections for Service Length, Guests and Staffing, and Display Options
* **Smart Collapsing**: The staff counter settings automatically collapse when the visual counter is disabled
These improvements make it easier to customize the staffing calculator to match your brand and customer preferences. The visual counter helps justify pricing by showing customers exactly how many team members will serve their event, while the text-only mode provides a cleaner alternative for businesses preferring a minimalist approach.
[Learn about staffing calculator configuration →](/forms/staffing-calculator) | [View lead intake form settings →](/forms/lead-intake#staffing-calculator-configuration)
## Share Links & Hosted Forms
Create shareable, Flashquotes-hosted versions of your lead intake forms perfect for social media, Instagram link-in-bio, and QR codes. No website or embedding required - just share your link and start collecting leads instantly.
**What's New:**
* **Hosted Form Pages**: Professional landing pages at short URLs (e.g., app.flashquotes.com/f/abc123)
* **Instagram Ready**: Perfect for link-in-bio with mobile-optimized design
* **Social Sharing**: One-click sharing to X, Facebook, Instagram, SMS, and email
* **QR Code Generation**: Create QR codes for print materials and offline marketing
* **Customizable Headlines**: Personalize your form's headline and subheadline
* **Brand Integration**: Automatic company logo and brand color display
Access these features from the new **Publish** tab in your form editor. [Learn how to create share links →](/forms/share-links)
## Quick Access to Stripe Payment Receipts
Admins can now instantly access official Stripe payment receipts directly from the payments table. This quality-of-life improvement makes it easier to share receipts with clients and handle accounting tasks.
**What's New:**
* **Receipt Links**: A new "Receipt" link appears next to payment details in the payments table
* **One-Click Access**: Opens the official Stripe receipt in a new tab for easy printing or sharing
This feature streamlines payment documentation workflows, eliminating the need to log into Stripe separately to retrieve receipts. [Learn more about viewing payment receipts →](/finance/stripe-receipts)
## CSV Export for Leads and Bookings
Export your business data to CSV format for powerful integrations with marketing platforms, analytics tools, and accounting software. This new feature enables seamless data portability for both leads and bookings.
**Key Features:**
* **One-Click Export**: Export up to 1,000 records instantly from the leads or bookings page
* **Comprehensive Data**: Includes all fields, custom form responses, and calculated metrics
* **Marketing Ready**: Perfect for email automation platforms like Mailchimp or Klaviyo
* **Ad Optimization**: Upload to Google Ads for conversion tracking and audience building
* **RFC 4180 Compliant**: Industry-standard CSV format works with all major tools
**Lead Export Includes:**
* Contact information and source tracking
* Quote history and conversion status
* Event details and requirements
* Activity tracking and assignments
**Booking Export Includes:**
* Complete client and event details
* Financial data including payments and balances
* Resource assignments and timelines
* Custom form field responses
**Common Use Cases:**
* **Email Marketing**: Re-engage unconverted leads with targeted campaigns
* **Google Ads**: Track conversions and create lookalike audiences
* **Business Analytics**: Analyze trends in Excel or BI tools
* **Accounting**: Reconcile bookings with QuickBooks
* **Operations**: Plan resource allocation and staffing
The export feature respects your active filters, allowing you to export specific date ranges, statuses, or segments. Files are UTF-8 encoded and compatible with Excel, Google Sheets, and all major data platforms.
Access the export feature from the toolbar on your [Leads](https://app.flashquotes.com/contacts) or [Bookings](https://app.flashquotes.com/bookings) page.
## Service Charges: Automated Fees & Gratuity
Streamline your pricing with Service Charges - automatically add percentage or flat fees to quotes and invoices. Perfect for service fees, gratuity, corkage fees, and other standard charges that apply across your business.
**Key Features:**
* **Flexible Pricing**: Configure percentage-based (e.g., 20% gratuity) or flat amount charges
* **Auto-Apply Options**: Set charges to automatically appear on all new quotes
* **Tax Configuration**: Mark charges as taxable or non-taxable based on your needs
* **Smart Application**: Charges apply to all line items except gratuity itself
* **Full Visibility**: Displays clearly across quotes, booking forms, and invoices
**How It Works:**
1. Create service charges in Settings → Service Charges
2. Auto-applied charges appear on new quotes automatically
3. Manually add or remove charges when editing quotes
4. Charges carry through to invoices when bookings are confirmed
5. Customers see transparent pricing at every step
**Common Use Cases:**
* **20% Gratuity**: Auto-apply to all quotes as a taxable percentage
* **Service Fee**: 10% operational charge for event coordination
* **Corkage Fee**: \$75 flat fee for BYOB events
* **Setup Fee**: Fixed charge for equipment preparation
Service charges integrate seamlessly with your existing workflow - they respect tax settings, work with discounts, sync to QuickBooks, and display beautifully in the quote template.
Configure your service charges in [Settings → Service Charges](https://app.flashquotes.com/settings/service-charges).
## Personalized Quote Email Subject Lines
Transform your quote emails with personalized subject lines that automatically include your lead's information. This new feature helps you create more engaging, personalized email subjects that can significantly improve open rates and engagement.
**Key Features:**
* **Lead-Specific Shortcodes**: Use `{{lead.first_name}}`, `{{lead.full_name}}`, `{{lead.company_name}}`, and more
* **Real-Time Preview**: See exactly how your subject line will appear with actual lead data
* **Default Customization**: Set a personalized default subject line in your quote settings
* **Individual Override**: Still edit subject lines when sending individual quotes
**Example Subject Lines:**
* `☕ {{lead.first_name}}, your quote is ready!`
* `✨ {{lead.full_name}}, review your quote from and book online in minutes!`
The system automatically processes these shortcodes when sending quotes, replacing placeholders with actual lead information. This creates a more personal connection with your leads and can help improve email open rates.
Configure your personalized subject lines in [Quote Settings → Email Settings](https://app.flashquotes.com/settings/quotes?tab=email).
## Drag & Drop Line Item Reordering
Admins can now reorder quote line items with simple drag and drop functionality. Quickly reorganize services, add-ons, and custom items to present your quotes in the most logical order for your clients.
## Service Days Editor: Multi-Day Quote Management
Create complex multi-day quotes with our new Service Days editor. Add multiple dates and times to a single quote, perfect for wedding weekends, corporate events, and festivals.
**Key Features:**
* **Inline Editing**: Edit dates and times directly in the quote editor
* **Flexible Scheduling**: Different start/end times for each service day
* **Automatic Events**: Each service day becomes a separate event when booked
* **Timezone Aware**: All times handled in your location's timezone
**Perfect For:**
* Wedding weekends (setup, ceremony, breakdown)
* Corporate events (setup, main event, teardown)
* Festivals and multi-day celebrations
* Installations with multiple phases
When clients book quotes with service days, each day automatically becomes a separate event in your booking system, making complex scheduling simple to manage.
Learn more in our [Service Days guide](/contacts/service-days).
## SMS Opt-in Collection
Many CRMs and SMS automation tools require explicit consent before sending text messages. Flashquotes now helps you capture that consent during lead intake, keeping you compliant while expanding your communication channels.
Add a checkbox asking "Can we text you?" with customizable consent language. Leads who opt in display a green "SMS" badge in your dashboard.
[Learn more →](/forms/sms-opt-in)
## Stripe Payouts Dashboard
Monitor and manage your Stripe payouts directly from Flashquotes. The new Payouts dashboard shows exactly when customer payments will be deposited to your bank account, helping you better plan cash flow and reconcile deposits. You can also access instant payouts for immediate access to funds when needed.
Learn more in our [Payouts documentation](/finance/payouts).
## Modern Quote Template for Higher Conversions
Transform your quote presentation with our modern quote template that brings e-commerce best practices to your service business. This conversion-optimized experience is designed to turn more leads into paying customers through trust-building features and strategic psychology.
Key features include:
* **Rich Photo Galleries**: Showcase up to 8 high-quality images to build trust and demonstrate your service quality
* **Social Proof Integration**: Display customer reviews, star ratings, and testimonials prominently to increase booking confidence
* **Dynamic Add-on Selection**: Enable customers to customize their packages with strategic upsells that boost average order value
* **Real-time Availability Indicators**: Create urgency with live availability status to reduce cart abandonment
* **Mobile-Optimized Design**: Professional, responsive layout that looks stunning on all devices
* **E-commerce Style Checkout**: Modern booking flow that customers recognize and trust
The template is fully customizable through an intuitive visual editor, allowing you to configure galleries, testimonials, and add-ons to match your brand and service offerings.
Ready to boost your booking rates? Learn how to configure your quote template in our comprehensive [setup guide](/contacts/quote-view).
## Team Member Roles and Permissions
We've enhanced our team management system with flexible role-based permissions. Now you can invite team members with different access levels to help manage your business while maintaining control over sensitive financial data.
Key features include:
* **Admin Role**: Full access to all features including aggregate financial data, member management, and company settings
* **Member Role**: Full access to all features except aggregate financial data (revenue totals, payment statistics)
* **Role Selection**: Choose the appropriate role when inviting new team members
* **Role Management**: Admins can promote or demote members between roles as needed
* **Financial Data Protection**: Members can still see individual invoice amounts and booking details, but not aggregate financial statistics
This feature helps you collaborate with team members while maintaining appropriate access controls. Members can handle day-to-day operations like managing bookings and invoices, while admins retain access to financial reporting and member management.
Learn more about team roles and permissions in our [team management guide](/settings/members).
## Real-Time Availability in Lead Intake Forms
We're excited to introduce real-time availability indicators in your lead intake forms. This feature helps set clear expectations with potential customers from the start and saves you time by reducing inquiries for dates when you're already fully booked.
Key benefits include:
* **Visual date indicators:** Green and yellow dots instantly show customers your availability status
* **Clear messaging:** After selecting a date, customers receive straightforward availability notifications
* **Automatic updates:** Availability updates in real-time based on your blocked dates and resource capacity
* **Resource optimization:** Better manage your team and equipment allocation across events
The system intelligently combines your blocked dates and existing bookings to determine availability status for each date, creating a more transparent booking experience.
Learn more about this feature in our [Real-Time Availability](/forms/real-time-availability) documentation.
## Instant Quoting
Transform your lead conversion process with our powerful new Instant Quoting feature. Now you can automatically generate and present quotes to clients immediately when they submit your lead intake form, enabling them to book instantly without any back-and-forth communication.
Key features include:
* **Instant Quote Generation**: Automatically calculate and present quotes using your configured pricing rules
* **Immediate Booking**: Clients can review and book quotes instantly upon form submission
* **Seamless Experience**: Direct redirect from form submission to quote presentation
* **Flexible Control**: Choose between manual review or instant quoting modes
* **Pro Plan Feature**: Available exclusively for [FlashQuotes Pro](https://app.flashquotes.com/settings/plans) subscribers
The system uses your existing instant pricing configurations to generate accurate quotes automatically, maintaining consistency while dramatically reducing the time from inquiry to booking.
Learn more about Instant Quoting in our documentation:
* [Instant Pricing & Quoting Guide](/contacts/instant-pricing)
* [Lead Intake Form Configuration](/forms/lead-intake)
* [Quote Settings](/settings/quotes)
## Automated Invoice Reminders
Never chase payments manually again! We've added automated invoice reminders that help ensure timely payments from your clients with minimal effort on your part.
Key features include:
* **Preset reminder schedule** with emails sent 1 day before due date, on the due date, and 2 days after
* **Email preview** option to review all reminder templates before they're sent
* **Toggle control** to easily enable or disable automated reminders
This feature complements the existing manual reminder capabilities, giving you a comprehensive system for payment follow-up that saves time while improving cash flow.
Learn more about this feature in our [Invoice Reminders](/invoices/reminders) documentation.
## Automated Lead Follow-up with Workflows
Transform your lead follow-up process with our powerful new Workflows feature. Now you can automatically nurture leads with perfectly timed, personalized email sequences that help convert more quotes into bookings.
Key features include:
* **Smart Email Sequences**: Pre-configured follow-up templates based on industry best practices
* **Dynamic Content**: Automatically insert quote details, lead information, and company data using shortcodes
* **Easy Enrollment**: One-click workflow enrollment when sending quotes
* **Full Visibility**: Track active workflows, scheduled emails, and lead engagement from both quote and lead views
* **Flexible Control**: Stop workflows automatically upon booking or manually when leads engage
The system intelligently handles multi-quote scenarios and automatically stops follow-ups when leads book, ensuring a professional experience throughout the sales process.
Learn more about Workflows in our documentation:
* [Workflows Overview](/workflows/overview)
* [Customizing Templates](/workflows/templates)
* [Managing Enrollments](/workflows/workflow-enrollments)
* [Understanding Triggers](/workflows/triggers)
## Instant Pricing
Save time and ensure consistent pricing with our new Instant Pricing feature. Now you can set up automatic price calculations for your services based on:
* Base service price
* Hourly rates per staff member
* Per-guest pricing
* Minimum price thresholds
When leads submit your intake forms, Flashquotes automatically generates draft quotes using your predefined pricing rules. This ensures consistent pricing across your business while still giving you the flexibility to review and adjust quotes before sending them to clients.
Check out our [Instant Pricing guide](/contacts/instant-pricing) to learn how to set up automated pricing for your services.
## Team Member Invitations
Bring your whole admin team onto Flashquotes with our new invitation system. You can now easily invite team members to join your company workspace directly through the platform. Head to Settings → Members to invite new users, manage pending invitations, and control user roles. Each invitation includes a secure, unique link that lets new users quickly join your workspace.
Note: You only need to invite admins to your workspace. Event staff can see everything they need without a Flashquotes account.
Check out our [team management guide](/settings/members) to learn more about inviting and managing team members.
## Enhanced Quote Analytics
Track your lead engagement more effectively with our enhanced quote analytics. In addition to email open tracking, you can now monitor two crucial conversion metrics:
* Quote page views
* "Book Now" button clicks
These metrics appear as colored badges on both your lead list and quote details pages, making it easy to identify your hottest leads at a glance. Use these insights to time your follow-ups perfectly and focus on leads showing the strongest booking intent.
Check out the [quote analytics documentation](/contacts/sending-quotes#tracking-quote-performance) to learn more about using these new metrics.
## Event Reminders for Staff
Keep your staff informed with our new Reminders feature. Tag events with important flags that appear prominently in both event details and event briefs. Whether it's equipment requirements, safety precautions, or special client requests, reminders ensure critical information is never overlooked. Create company-wide standard reminders or add custom ones for specific events. A warning banner at the top of event briefs ensures staff members are immediately aware of important details before starting their shift.
Learn more about using Reminders in our [detailed documentation](/events/reminders).
## Send Quotes from Your Gmail Account
Connect your business Gmail account to send quotes directly from your own email address.
This integration creates a more personal experience for your clients, as they'll
receive quotes from your familiar business email. Your quotes maintain all their
interactive features while appearing more personalized in your client's inbox.
To get started, visit [Google Integrations](https://app.flashquotes.com/settings/integrations) in your settings to connect your Gmail account.
## Email Analytics & Engagement Tracking
Track how leads interact with your quotes through our new email analytics feature. On the leads page, look for the eye icon next to sent quotes to instantly see how many times each quote has been viewed. For deeper insights, click into any sent quote to access a detailed activity timeline showing:
* Total email opens and unique views
* First and last open timestamps
* Complete chronological feed of all quote interactions
This visibility helps you time your follow-ups perfectly and focus on your most engaged leads.
Check out the [email analytics docs](/contacts/sending-quotes#tracking-quote-performance) for more details.
## Customizable Quote Emails
You can now fully edit the subject and body text of quote emails, allowing for more personalized messaging and branding. Whether you want to add a friendly touch, emphasize urgency, or tailor the language to your audience, you now have the flexibility to craft emails that resonate with your clients.
You can set a permanent default for the email body text in [Quote Settings](https://app.flashquotes.com/settings/quotes).
## New Multi-Select Question Type
We've added a multi-select question type to Booking forms, allowing clients to choose multiple options in a single response. This is especially useful for event packages, customer flavor choices, etc.
Find this under Forms → Booking Forms → Add Question
## Copy Quotes with One Click
You can now copy any existing quote with a single click, making it easier to create new quotes based on past proposals. This is perfect for businesses with repeat clients or standard pricing structures.
Simply find the "Copy" option in the quote actions menu.
## In-App AI Help Chat
We've integrated Mintlify's AI-powered help chat directly into the app, making it easier than ever to get real-time assistance without leaving your workflow. Whether you need guidance on features, troubleshooting help, or best practices, our AI chat assistant is available to provide quick answers.
Try it out by clicking the Get Help icon in the bottom right corner of the Flashquotes dashboard.
## QuickBooks Online Integration
[Pro plan](https://app.flashquotes.com/settings/plans) customers can now sync their financial data with QuickBooks Online. The integration automatically creates customers, invoices, payments, and deposits in QuickBooks, with configurable account mappings and tax codes.
Payments are synced in real-time, including proper handling of sales tax and processing fees. The integration maintains your QuickBooks data structure while ensuring accurate financial reporting.
For more details, check out the [QuickBooks integration docs](/settings/integrations/quickbooks).
## Service Area Configuration
Define your service radius to automatically validate event addresses during quote submission. The system checks addresses in real-time against your specified radius. For events outside your service area, a warning banner notifies the client that additional travel fees may apply.
Your service area is defaulted to 150 miles, but you can change this in **[Quote Settings](https://app.flashquotes.com/settings/quotes)**.
## Lead Intake Form Settings
New configuration options include service duration limits, maximum staff counts, and custom redirect URLs after form submission. You can also customize the staff photos and descriptions in the lead intake form.
Form questions can now be fully customized. The system automatically generates optimized default forms for new accounts based on conversion data.
For more details, check out the [lead intake form docs](/forms/lead-intake).
## Zapier Integration Expansion
Three new Zapier triggers enable deeper workflow automation:
* **Quote form submission trigger** Send new leads directly to your CRM to streamline lead management.
* **Event timeline trigger** Keep your calendars synchronized with this new trigger which fires whenever event schedules change.
* **Staff assignment trigger** Automatically notify team members when they're assigned to events.
Read more about Zapier integration [here](/settings/integrations/zapier).
## Lead Intake Forms v2
Lead intake forms are now fully customizable while maintaining high conversion rates. Find pre-configured forms under **Forms > Lead Intake Forms**, complete with proven questions and your brand colors automatically applied.
Platform-specific embed instructions make it simple to add forms to any website, whether you're using Webflow, Squarespace, WordPress, or other platforms. All leads flow directly into your Flashquotes dashboard for immediate follow-up.
Read more about lead intake forms [here](/forms/lead-intake).
## Enhanced Quote Customization
The quote editor now features a live preview as you build, showing exactly how your quote will appear to clients. Customize the hero text at the top of your quotes using markdown formatting for **bold** statements and embedded links. For more details, check out the [quote page docs](/docs/quotes).
Brand your quotes with custom hero images for each quote or set a default in company settings. Your brand colors now extend throughout customer-facing pages - set your signature color in **Settings > Branding** to have buttons and icons match your visual identity. Check out the [branding docs](/settings/branding) for more details.
## Lead Calendar
Your calendar now displays both confirmed bookings and potential events from quotes. Quoted events appear with dotted borders, giving you a complete view of upcoming business - both confirmed and potential.
## Sales Tax Reporting
Managing sales tax across multiple jurisdictions is now simpler with our new automated tax reporting. Access comprehensive tax summaries in the [Sales Tax report](/reports/sales-tax) (now found under **Reports**) to see your total sales, taxable amounts, and taxes owed.
The report breaks down tax data by rate, making it easy to handle different tax jurisdictions. All payment data in Flashquotes automatically flows into these reports, ensuring your numbers are always current.
Need historical data? Filter the report by different time periods, from last month to year-to-date, to get exactly the information you need for tax remittance.
## Resource Selection in Booking Forms
Let clients choose their preferred cart directly in your booking form with our new Resource Select question type. The form shows only carts available for the selected event date, complete with photos and descriptions you can customize in the resource settings.
When a booking is confirmed, the selected cart is automatically assigned to the event, streamlining your workflow and ensuring clients get exactly the setup they want.
## Native email sending
Now you can fire off **quote emails** directly from the quote page. Client quote emails include a link to the quote presentation page and the Book Now button
Click the new "Copy share link" button if you still want to copy/paste the quote link into a separate email
You can also send **invoice reminders** to clients with a single click. Preview the email before sending to ensure it looks great. Emails are branded with your logo and include a direct link to pay.
# Contacts
Source: https://docs.flashquotes.com/contacts
Everyone you've quoted or booked, in one place
## Overview
The Contacts page is your client directory — everyone you've quoted or booked, in one place. New contacts are created automatically when someone submits your [lead intake form](/forms/lead-intake), or you can add them yourself with **New contact**.
Where the [Pipeline](/pipeline) tracks quotes, Contacts tracks people: each contact holds the client's details, every quote and booking tied to them, and your full communication history.
## The contacts table
The table shows each contact's name and company, email and phone (hover to copy either with one click), quote and booking counts, last activity, source, owner, and created date. It's sorted by last activity by default, so the clients you've most recently touched are on top.
* **Search** by name, email, or phone number
* **Filter** by created date range, source, or owner
* **Export CSV** downloads your contacts honoring whatever filters and search are active
Click any row to open the contact's detail page.
## Contact details
Each contact page keeps the client's info in a details panel and organizes everything else into tabs:
* **Activity** — a unified, chronological feed of everything that's happened: notes, emails sent and received, quote status changes, and workflow actions. Skim it to catch up before reaching out — no need to check each tab separately.
* **Quotes** — create and manage quotes for this contact
* **Bookings** — confirmed bookings tied to this contact
* **Emails** — email threads with the contact
* **Notes** — add and search notes about the contact
* **Workflows** — view and manage active workflow enrollments
### Notes
Use notes to log context, follow-up reminders, or anything worth remembering.
1. Open the **Notes** tab and click **Add Note**
2. Write your note using the rich text editor
3. Click **Save**
Pin important notes to keep them at the top of the list, and use the search bar to filter notes by keyword.
### Contact owner assignment
Assign contacts to specific team members for better accountability and follow-up tracking. Open a contact, click **Edit** in the header, and pick a team member as the owner. The owner appears in the contacts table and on [Pipeline](/pipeline) cards, and both pages can filter by owner so each teammate can work their own book.
## Managing quote expiration dates
Admins can change individual quote expiration dates to extend opportunities or accommodate special circumstances.
You can modify quote expiration from the contact's **Quotes** tab, the quote edit page, or the quote view page.
* **Extend** a quote that's about to expire while a client decides
* **Reactivate** an expired quote by setting a future date — it becomes bookable again immediately
* **Remove** the expiration entirely for special situations
Expired quotes cannot be booked. Clients see a message prompting them to
request a new quote or contact you directly.
## Best practices
1. Respond to new contacts promptly — sending a quote within the first hour of inquiry dramatically improves your chance of winning the booking
2. Keep contact information current
3. Use notes and the activity feed to track communication history
4. Assign owners so follow-ups never fall through the cracks
## Next steps
* [Work your open quotes in the Pipeline](/pipeline)
* [Create quotes](/contacts/quotes)
* [Send quotes](/contacts/sending-quotes)
# Flashquotes AutoDraft
Source: https://docs.flashquotes.com/contacts/autodraft
Automatically pre-build draft quotes from every lead
# Flashquotes AutoDraft
Save time with Flashquotes AutoDraft - automatically pre-build draft quotes from your leads. Instead of starting from scratch, you'll review and send pre-built quotes in seconds.
This works for manual quoting (not instant quotes). Perfect when you want consistent pricing but need to review each quote before sending.
## Set up AutoDraft
### 1. Create your default service
Go to [Services](https://app.flashquotes.com/services) and create your primary service offering. Set your base pricing and service details. This becomes the foundation for every AutoDraft quote.
[Learn about services →](/services)
### 2. Add your common add-ons
Go to [Add-ons](https://app.flashquotes.com/services?tab=addons) (under **Services & items**) to create extras you frequently offer (delivery, setup, additional hours). Set pricing for each.
[Configure add-ons →](/services/add-ons)
### 3. Configure your form's default service
Open your lead intake form and click the "Instant Pricing" button. In the pricing settings modal, select your default service in the "Fallback Service" dropdown. This service will be used for all AutoDraft quotes from this form.
[Set up lead intake forms →](/forms/lead-intake)
## What happens next
When new leads come in through this form, AutoDraft creates a draft quote with your default service. You can add/remove services, adjust pricing, then send.
## Troubleshooting AutoDraft
* **No draft quotes appearing**: Check that you selected a fallback service in your form's instant pricing settings
* **Wrong pricing showing**: Verify your selected service has current pricing configured
* **Missing add-ons**: Add-ons aren't auto-applied - add them to individual quotes as needed
Need help with instant quotes instead? See our [instant quote setup guide](/contacts/instant-pricing).
# Booking Flow
Source: https://docs.flashquotes.com/contacts/booking-flow
Configure how customers complete their booking after accepting your quote
## Overview
The Booking Flow controls how customers complete their booking after accepting your quote. Configure which booking form collects customer information and which payment terms apply directly from the quote editor.
## How It Works
The booking flow consists of three steps:
1. **Booking Form** - The form customers complete when booking (required)
2. **Contract** - Digital contract signing (Plus/Pro)
3. **Payment Terms** - How and when payments are collected
## Payment Terms
Payment terms define your payment schedule for each quote. Select from your configured options or create new terms directly from the quote editor.
### Selecting payment terms
Scroll to the **Booking Flow** section in the quote editor.
Click the Payment Terms dropdown to choose from your configured options.
Click **Add new payment terms** to create custom terms directly from the quote editor.
### Payment Schedule Types
**Best for:** Events that require complete payment upfront
**How it works:**
* Clients pay 100% of the quote total when booking
* No additional payments needed
**Configuration options:**
* No additional configuration needed
* Clients will be charged the full quote amount at booking
**Best for:** Events that require an upfront deposit to secure the booking
**How it works:**
* Clients pay a deposit amount when booking
* Remaining balance is invoiced and due before the event
* Clients can choose to **pay the full balance today** instead of just the deposit
**Configuration options:**
* **Deposit Type:** Choose between:
* **Fixed Amount:** Set a specific dollar amount (e.g., \$500)
* **Percentage:** Set a percentage of the total quote (e.g., 25%)
* **Deposit Amount:** Enter the fixed dollar amount or percentage value
* **Balance Due:** Set when the remaining balance is due (days before/after event)
**Pay full balance option:**
When booking with a deposit schedule, customers see a "Pay full balance today" checkbox on the booking form. Toggling it charges the full invoice amount due in a single transaction — no later balance payment needed.
**Best for:** Corporate clients or situations where payment is handled through traditional invoicing
**How it works:**
* No payment collected through Flashquotes at booking
* Booking is confirmed without payment
* Invoice is generated and sent to the client
**Configuration options:**
* **Invoice Due:** Set when payment is due (days before/after event)
**Best for:** Events where you want to authorize a card for later charges
**How it works:**
* Client's card is authorized but not charged at booking
* Card is charged by you when you're ready to collect payment
* Invoice is generated with the payment due date
**Configuration options:**
* **Invoice Due:** Set when payment is due (days before/after event)
### Editing Payment Terms
Click the **Edit** button next to any payment terms option to modify:
* Payment schedule type
* Deposit amount or percentage
* Invoice due timing
* Set as company default
Changes to payment terms apply to all quotes using those terms.
## Default Payment Terms
Set a default payment terms to automatically apply to all new quotes.
Click the Payment Terms dropdown in any quote's Booking Flow section.
Click **Edit** next to the payment terms you want as default.
Toggle **Set as company default** and save.
Your default payment terms will apply to all new quotes. You can always change the payment terms on individual quotes.
## Using Multiple Payment Terms
Different client types often require different payment terms:
Invoice only with payment due after the event
25-50% deposit required upfront
Full payment upfront
### Common Scenarios
**Standard:** 25% deposit to secure date, balance due 2 weeks before event
**Premium:** 50% deposit for peak season dates
**Standard:** Invoice only, due 30 days after event
**New Clients:** Full payment required for first booking
## Contract
Add digital contracts to your booking flow. Customers review and sign contracts electronically before payment.
### Assigning a contract
1. Click the Contract dropdown in the Booking Flow section
2. Select a contract template
3. Click **Edit** to modify the contract
4. Toggle **Set as default** to auto-assign to new quotes
Contracts appear after customers fill out the booking form but before payment. Customers must complete all signature blocks before proceeding to payment.
Plus subscribers can create up to 2 contract templates. Pro subscribers get unlimited templates. [Learn more about contracts →](/templates/contracts/overview)
## Booking Form
The booking form collects customer information when they book. Select from your configured booking forms or edit them directly from the dropdown.
### Selecting a booking form
* Click the Booking Form dropdown to see available forms
* Forms marked "Default" are automatically selected for new quotes
* Click **Edit** to modify form questions
* Click **Go to forms** to manage all forms
Configure your booking forms in [Forms settings](/forms/booking).
## Best Practices
Use descriptive names that indicate the payment schedule:
* "25% Deposit - Balance Due Before Event"
* "Full Payment Upfront"
* "Corporate Net 30"
* "Card on File - Due Day Before"
* "Payment Terms 1"
* "Option A"
* "New Terms"
Create payment terms that match your common scenarios:
* Regular clients who know your payment terms
* New clients who might need flexible options
* Corporate clients with procurement processes
* Last-minute bookings requiring immediate payment
* Choose your most common payment schedule as the default
* This saves time when creating quotes
* You can always override on individual quotes
* Use larger deposits for expensive events
* Require full payment for last-minute bookings
* Consider card on file for recurring clients
## Troubleshooting
Yes! You can change payment terms on any unsent or sent quote. Navigate to the quote, update the payment terms in the Booking Flow section, and the quote will reflect the new terms.
* For percentage deposits, verify the percentage is entered correctly (e.g., 25 not 0.25)
* Check that the quote total is accurate
* Edit the payment terms to adjust the deposit amount
* Make sure you have at least one payment terms configured
* Check that payment terms aren't deleted
* Try creating a new payment terms from the dropdown
Refunds are processed based on what the client has actually paid, regardless of the original payment terms.
## Next Steps
* [Create quotes](/contacts/quotes)
* [Send quotes](/contacts/sending-quotes)
* [Configure booking forms](/forms/booking)
# Instant Pricing & Quoting
Source: https://docs.flashquotes.com/contacts/instant-pricing
Learn how to configure automatic price calculations and instant quoting for your services
## Overview
Instant Pricing and Quoting automatically calculates service quotes based on predefined pricing rules, saving time and ensuring consistent pricing across your lead intake forms. With Instant Quoting enabled, clients can receive and book quotes immediately upon form submission.
## Video Tutorial
Watch this step-by-step guide on setting up Instant Quoting:
## Setting Up Service Pricing
### Step 1: Create or Edit a Service
Go to **Services & items** in the sidebar and either create a new service or edit an existing one. In the service editor, you'll find the Pricing Configuration section with the following options:
* **Base Price**: Starting price for the service before any adjustments
* **Hourly Rate Per Staff**: Rate charged per staff member per hour
* **Price Per Guest**: Additional charge that scales with guests. On the service pricing page you can choose **Per guest** (rate × guests) or **Per guest per hour** (rate × guests × hours).
* **Minimum Price**: The lowest price that will ever be quoted for this service
The Minimum Price threshold ensures you never quote below your cost basis,
protecting your business's profitability.
### Example Calculation
For an event with:
* 2 staff members
* 3 hours duration
* 50 guests
The total price would be calculated as:
```
Total = Base Price + (Hourly Rate × Staff × Hours) + Guest Component
```
The **Guest Component** depends on the guest pricing mode set on the service: either (Price per guest × Guests) or (Price per guest × Guests × Hours).
If the calculated total is less than the Minimum Price, the system will
automatically use the Minimum Price instead.
## Setting Default Pricing Rules
### Step 1: Access Pricing Settings
1. Go to your lead intake form's edit page
2. Click the "Instant Pricing" button in the header navigation
3. The pricing settings modal will open
### Step 2: Configure Quoting Mode
When configuring your lead intake form's pricing settings, you'll find two quoting modes:
* **Manual Quoting** (Default): Generates a draft quote for admin review before sending
* **Instant Quoting**: Automatically calculates and presents quotes to clients immediately upon form submission
Instant Quoting is available exclusively on the [FlashQuotes Pro
plan](https://app.flashquotes.com/settings/plans).
### Step 3: Choose Your Pricing Approach
There are two ways pricing works with forms, depending on whether you have a service selection question:
#### Forms WITH Service Selection Questions
When your form includes a service selection question:
* Pricing comes from the service the customer selects
* Works for both manual and instant quoting
* The "fallback service" configured below is only used if no service is selected
* Each service can have different pricing rules
#### Forms WITHOUT Service Selection Questions
When your form doesn't include service selection:
* All quotes use the single service configured in pricing settings
* This creates "fixed pricing" where every quote follows the same pricing rules
* Simpler setup for single-service businesses
Not sure which approach to use? Single service businesses often prefer fixed pricing, while multi-service businesses benefit from service selection questions.
### Step 4: Configure Fallback Service
Select a service to use when:
* Forms with service selection have no service selected
* Forms without service selection questions (this becomes your fixed pricing service)
Make sure to test your pricing configurations with different combinations of
staff, hours, and guest counts before enabling Instant Quoting. If using a
service selection question, test with each available service option.
## How It Works
When Instant Quoting is enabled:
1. **Client submits your lead intake form**
2. **System determines pricing source:**
* **With service selection question**: Uses the service the customer selected
* **Without service selection question**: Uses the fallback service configured in settings
* **No service selected**: Falls back to the configured default service
3. **Calculates the price using the selected service's pricing rules:**
* Base price + (Hourly rate × Staff × Hours) + guest component (per guest or per guest per hour, depending on the service's guest pricing mode)
* Applies minimum price threshold if calculated total is lower
4. **Automatically redirects client to quote presentation page**
5. **Client can review the quote and click "Book Now" immediately**
The pricing calculation is identical for manual and instant quoting - the only difference is when the quote gets presented to the customer.
Instant Quoting creates a seamless experience where clients can inquire,
receive a quote, and book all in one visit to your website.
## Best Practices
Before enabling Instant Quoting:
* Test different combinations of staff, hours, and guest counts
* Verify calculations align with your business model
* Check that minimum prices are being applied correctly
Stay competitive and profitable by:
* Periodically reviewing your pricing configurations
* Adjusting rates based on market conditions
* Updating minimum prices as costs change
Maximize flexibility with:
* Different services for various event types
* Unique pricing configurations per service level
* Specialized rates for premium offerings
## Important Notes
Instant Quoting requires careful configuration of your pricing rules to ensure
accuracy based on the duration and guest count for each day. **Consider
starting with Manual Quoting mode to verify your pricing rules before enabling
Instant Quoting**
## Next Steps
After setting up Instant Pricing and Quoting:
* [Test your forms](/forms/booking) with sample submissions
* [Review generated quotes](/contacts/quotes) to ensure accuracy
* [Monitor conversion rates](/pipeline) to optimize your pricing strategy
* [Configure your quote template](/contacts/quote-view) for an enhanced quote presentation that maximizes conversion rates
# Quote Page
Source: https://docs.flashquotes.com/contacts/quote-view
Boost your booking rate with a modern quote experience
## Overview
The Flashquotes quote page is designed to help you convert more leads into paying customers. With a modern e-commerce inspired design and powerful conversion features, it can help you achieve:
* **Higher booking rates** through trust-building social proof
* **Increased average order value** with dynamic add-on selection
* **Reduced cart abandonment** with real-time availability indicators
* **Better customer experience** with a mobile-optimized, professional design
## Using Quote Templates
Every company gets one default quote template that is fully customizable. **Pro plan** users can create multiple templates for different event types, services, or branding variations. Each template can have its own gallery images, testimonials, add-ons, and other visual elements.
Learn how to create and manage quote templates in our [Quote Templates guide](/templates/quote-templates). [Upgrade to Pro](/settings/plans) for multiple templates.
### Assigning a Template to a Quote
1. Open any quote detail page
2. Click on the **Quote Template** tab
3. Select a template from the dropdown
4. The quote will automatically update to use the selected template
## Video Tutorial
Watch our step-by-step tutorial on setting up your quote page:
## The Customer Experience
See the modern, professional experience your customers will enjoy:
### 📈 Proven Conversion Boosters
Showcase up to 8 high-quality images of your services to build trust and showcase your work quality.
Display customer reviews and testimonials prominently to increase customer
confidence through social validation.
Enable customers to customize their package with last-minute upgrades,
increasing your average order value.
Create urgency with live availability status indicators to reduce booking
hesitation.
Build trust with an e-commerce style checkout experience that looks great on all devices.
### 🎯 Key Benefits
* Modern, mobile-responsive design that looks great on all devices
* Increased customer confidence through social validation
* Higher average order values through strategic add-on placement
* Reduced friction in the booking process
## Getting Started
### Step 1: Access Quote Templates
Go to **Templates** in the sidebar. Quotes is the first tab.
Click on an existing template to edit it, or click **Create Template** to start a new one.
### Step 2: Configure Your Quote Template
The visual editor allows you to customize every aspect of your quote page. See our [Quote Templates guide](/templates/quote-templates) for detailed instructions on configuring templates.
## Configuring Quote Template Features
### 📸 Gallery Images
The gallery is one of the most impactful features for building trust and showcasing your services.
1. In the template editor, find the **Gallery Images** section
2. Click on any of the 8 image slots
3. Select an image from your media library or upload a new one
4. The first image (top-left) will be marked as "Main" and displayed prominently
* Use high-quality images at 1200×900px (4:3 ratio) for best results
* Include a mix of:
* Final service results
* Your team in action
* Equipment and setup shots
* Happy customers (with permission)
* Update images seasonally to keep content fresh
### ✅ Service Details
Help customers understand exactly what's included in their quote with dynamic service details.
1. Open the **Service Details** section
2. Click "Add Service Detail" to create a new item
3. Use plain text or markdown formatting for rich content
4. Include dynamic values with shortcodes
* `{{quote.guest_count}}` - Number of guests
* `{{quote.staff_count}}` - Number of staff
* `{{quote.service_duration_hours}}` - Total service duration across all days
* `{{quote.daily_service_duration_hours}}` - Average service duration per day
* `{{quote.event_address}}` - Event location
* "Professional service for `{{quote.guest_count}}` guests"
* "`{{quote.staff_count}}` experienced staff members"
* "All equipment and supplies included"
* "`[View our safety protocols](https://yoursite.com/safety)`"
### ⭐ Reviews & Testimonials
Social proof is crucial for building trust with potential customers.
1. In the **Reviews & Testimonials** section, toggle "Reviews" on
2. Set your average star rating (e.g., 4.8)
3. Enter your total review count (e.g., 1,348)
1. Click "Add testimonial" 2. Enter the customer quote and name 3. Drag to
reorder testimonials 4. Add 3-5 compelling testimonials for best results
* Use specific, detailed testimonials that mention results
* Include the customer's first name and last initial
* Rotate testimonials periodically to keep them current
### 💰 Add-ons (optional)
Add-ons are your opportunity to increase average order value while providing valuable options to customers.
1. In the **Add-ons** section, you'll see all your created add-ons
2. Toggle add-ons on/off to control visibility
3. Click the edit icon to update add-on details
In the form builder, drag and drop add-ons to change their display order. The order you set here affects how add-ons appear to customers on their quote page. Put your most popular or highest-value add-ons first to maximize visibility.
For per-unit add-ons, customers can adjust quantities directly on the quote page:
* Use the + and - buttons to increase or decrease quantities
* Quantity limits (if set in your add-on configuration) are automatically enforced
* Pricing updates in real-time as customers adjust quantities
* Works seamlessly on both desktop and mobile devices
* Use clear, benefit-focused names - Include appetizing photos - Price
strategically (not too high to deter, not too low to devalue) - Limit to 4-8
options to avoid overwhelming customers
When creating or editing add-ons, you can set pricing that automatically adjusts based on:
* Number of guests
* Service duration
* Number of days
* Number of resources/staff
### 📅 Service Days Management
The quote template supports multi-day events through service days. Each service day can have its own date and time.
* Add multiple service days to a single quote
* Each service day can have different dates and times
* Perfect for wedding weekends, corporate events, and festivals
* When booked, each service day becomes a separate event
* Set different start and end times for each day
* Handle timezone conversions automatically
* Support for overnight events and multi-day setups
* Real-time availability checking for each service day
* Edit service days directly in the quote editor
* Add new days with one click
* Remove days as needed (minimum one day required)
* All changes sync automatically with your booking system
Service days are managed in the quote editor, not the template editor. Each service day displays its specific date and time on the customer-facing quote page.
## Mobile vs Desktop Preview
The template editor includes preview modes to ensure your quote looks perfect on all devices:
* **Desktop Mode**: Full-width layout with side-by-side content
* **Mobile Mode**: Optimized single-column layout with sticky booking button
Toggle between modes using the preview selector to test both experiences.
## Best Practices for Maximum Conversions
A fully configured quote page builds more trust than one with missing elements.
Professional photos are worth the investment - they directly impact booking
rates.
Update testimonials, images, and service details regularly to maintain
relevance.
Monitor which add-ons get selected most and optimize your offerings
accordingly.
The real-time availability indicator creates natural urgency - ensure your availability settings are accurate.
## Download & Print Quotes
Save any quote as a PDF for offline sharing or printing.
1. Open a quote from the quotes page
2. Click the menu icon (three dots) in the top right
3. Select **Download PDF** to save the file, or **Print** to send it to your printer
The PDF includes your full quote details, line items, pricing, and branding. Use it to attach quotes to emails, share with clients who prefer paper copies, or keep for your records.
## Frequently Asked Questions
Yes, the template editor shows a real-time preview of your quote page as you
make changes.
No, your existing add-ons work seamlessly - just choose which ones to
display.
Absolutely! The template is fully responsive and optimized for mobile booking.
## Need Help?
If you have questions or need assistance setting up your quote template:
* Contact our support team via the chat widget in the bottom right corner
* [Book a free setup consultation](https://calendly.com/jg-goodhartcoffee/flashquotes-support) with our success team
## Next Steps
Ready to boost your booking rate?
1. [Create and manage quote templates](/templates/quote-templates)
2. Configure your gallery images and testimonials
3. Set up your add-ons for maximum conversion
4. Test the mobile and desktop experience
Learn more about [creating quotes](/contacts/quotes) and [sending
quotes](/contacts/sending-quotes) to make the most of your quote templates.
# Creating Quotes
Source: https://docs.flashquotes.com/contacts/quotes
Learn how to create and customize quotes for your leads
## Overview
Quotes in Flashquotes allow you to provide detailed pricing and service information to your leads. Whether generated automatically from lead intake forms or created manually, quotes can be customized with pricing, services, and branded elements.
Skip manual quote building! [Set up Flashquotes AutoDraft](/contacts/autodraft) to automatically pre-build draft quotes from your leads.
Learn how to customize your quote template for maximum conversions. [Configure your quote template →](/contacts/quote-view)
## Quote Creation and Management
To create a new quote:
1. Navigate to the [Contacts](https://app.flashquotes.com/contacts) page
2. Open the lead you want to create a quote for
3. Click `+ New Quote`
4. Fill in the required event details
5. Click `Create`
The Flashquotes quote template is designed for maximum conversions featuring:
* Modern e-commerce inspired design
* Rich photo galleries and social proof
* Dynamic add-on selection
* Real-time availability indicators
* Mobile-optimized experience
**[Configure your quote template →](/contacts/quote-view)**
When leads come through your [lead intake form](/forms/lead-intake), a
pre-populated quote will be automatically created. If you have [Instant Pricing](/contacts/instant-pricing) enabled, pricing is calculated automatically based on either the service selected in the form or your configured fallback service.
## Getting the Most from Your Quotes
### Best Practices for All Quote Types
1. **Review all pre-populated information for accuracy**
2. **Keep pricing and terms clear and consistent**
3. **Use appropriate hero images and messaging**
4. **Add additional travel costs and mileage as necessary using the map integration**
5. **Verify all details before sending**
### Add-on Quantity Management
When working with add-ons and services:
* Add-on quantities automatically respect any min/max limits set in your add-on configuration
* The system enforces quantity constraints when creating or editing quotes
* Customers can adjust quantities on their quote page within configured limits
### Location and Travel Planning
Each quote includes an integrated map view showing:
* Service location
* Venue address
* Drive time
* Mileage calculation
This helps ensure accurate travel cost estimation and proper profit margins.
## Service Days
Service days let you attach multiple dates and times to a single quote. Perfect for multi-day events, setups, or separate service blocks.
When a quote is booked, each service day becomes its own event inside the
booking.
### How service days work
* **Per-quote**: Add as many service days as needed
* **Separate events**: Each service day converts to an individual event upon booking
* **Inline editing**: Edit date and time directly in the quote editor
* **Timezone aware**: All times handled in your location's timezone
### Adding or editing service days
Navigate to a quote and scroll to the Service Days section.
Click the + button. A new row appears in edit mode.
Adjust the date, start time, and end time inline. Click the check icon to
save or the X icon to cancel.
### Service day management
* **Date picker**: Click calendar icon to select date
* **Time inputs**: Use 24-hour format (HH:MM)
* **Auto-suggestions**: New days default to next day with same time range
* Click pencil icon to edit any service day
* Make changes directly in form fields
* Save with check icon or cancel with X icon
* Changes saved immediately with optimistic updates
* Click trash icon to delete a service day
* Last remaining service day cannot be deleted
* Deleting removes associated line items
Click the trash icon to remove a service day. The last remaining day cannot be deleted.
### Multi-day event scenarios
Service days work for:
* **Wedding weekends**: Ceremony Friday, reception Saturday
* **Corporate events**: Setup day, main event day, breakdown day
* **Festivals**: Multiple days with different schedules
* **Installations**: Setup, service, removal days
Each service day maintains its own start and end times for flexible scheduling.
For detailed information about managing service days, see our [Service Days guide](/contacts/service-days).
## Booking Flow
The Booking Flow controls how customers book their quote. Configure which booking form collects customer information and which payment terms apply.
Payment terms selected here determine how and when customers pay for the quote.
### Booking Flow steps
1. **Booking Form** - The form customers complete when booking (required)
2. **Contract** - Digital contract signing *(coming soon)*
3. **Payment Terms** - How and when payments are collected
### Quick actions
* **Select payment terms** - Choose from configured options in the dropdown
* **Add new terms** - Create custom payment terms directly from the quote
* **Edit terms** - Click Edit to modify any payment terms option
* **Set defaults** - Mark payment terms as company default for new quotes
Your default payment terms will apply to all new quotes. You can edit the default in the booking flow.
For detailed information about configuring booking flow, see our [Booking Flow guide](/contacts/booking-flow).
## Service Charges in Quotes
Service charges let you add percentage or flat fees to quotes automatically or manually. They apply to all line items except gratuity and appear as separate line items for customers.
**Auto-applied charges:**
* Appear automatically on new quotes
* Set up in Settings > Service Charges
* Can be removed manually if not needed
**Manual charges:**
* Add using service charges dropdown in quote editor
* Choose from any configured service charge
* Apply multiple charges to same quote
**Percentage charges:**
* Calculate from subtotal of applicable line items
* Exclude gratuity from calculation base
**Flat charges:**
* Add fixed amount regardless of quote value
* Applied after percentage charges
**Tax handling:**
* Taxable charges included in tax calculations
* Non-taxable charges added after tax
Service charges display clearly to customers:
* Show as separate line items in quote presentations
* Visible in the quote presentation
* Included in booking confirmation forms
* Carry through to invoices automatically
Set up commonly used charges (like gratuity or service fees) as auto-applied to save time on every quote.
Learn more about configuring service charges in [Service Charges Settings](/settings/service-charges).
## Quote Customization Options
### Customizing Quotes
The quote editor allows you to customize the details and presentation of your quote. Customization options include:
### Key event details
* Event address
* Event date
* Service start and end times
* Guest count
* Service location
* Number of staff and core resources
* Special notes
Most of this information is pre-populated from the lead intake form, but you can customize it to fit your needs.
#### Special Notes Editor
Special notes use a rich text editor with full formatting support. Add internal notes, reminders, or instructions with:
* **Text formatting**: Bold, italic, underline, strikethrough
* **Structure**: Headings (H1, H2, H3), bullet lists, numbered lists
* **Visual elements**: Horizontal rules for section dividers
* **Links**: Add hyperlinks to external resources
**Quick tips:**
* Click the formatting buttons in the toolbar to apply styles
* Press `Cmd+Enter` (Mac) or `Ctrl+Enter` (Windows) to save
* Use headings to organize longer notes
* Existing Markdown notes automatically convert when you edit them
Special notes are internal-only and not visible to customers. They're perfect for staff reminders, special instructions, or event-specific details.
#### Pricing and line items
* Modify or add line items for services
* Add line items for add-ons (quantities respect configured min/max limits)
* Apply tax rates
* Apply discounts (including [per-line-item discounts](#per-line-item-discounts))
* Add service descriptions
#### Visual elements
* Customize hero images for each quote
* Modify hero text and messaging presented on the quote
* Present the quote in a branded color scheme by [setting your brand colors](/settings/branding)
You can also set a default hero image and messaging in your [quote settings](/settings/quotes).
## Per-line-item discounts
Attach an existing discount to any single line item on a quote or invoice — useful when you want to mark down one service without touching the rest of the order.
### Apply a discount to a line item
1. Open the quote (or invoice) and edit the line item.
2. In the line-item editor, open the **Discount** picker.
3. Pick an existing discount, or choose **+ New discount** to create one inline — new discounts auto-apply to the line as soon as they're saved.
4. Use **Manage discounts** in the picker to jump to Settings → Discounts.
Totals, taxes, and QuickBooks sync all use the discounted amount, so your books reconcile automatically.
### What customers see
On the booking summary, quote view, payment page, and both PDFs, discounted line items show the original price with a strikethrough next to the discounted "now" price and the discount name.
Line-item discounts apply **before** any order-level discount, floor at \$0 (a discount can never make a line negative), and are never applied to gratuity.
## Next Steps
After creating quotes:
* [Learn about quote template setup](/contacts/quote-view)
* [Learn about sending quotes](/contacts/sending-quotes)
* Review for accuracy
* Prepare for follow-ups
# Sending Quotes
Source: https://docs.flashquotes.com/contacts/sending-quotes
Learn how to send and share quotes with potential customers
## Overview
Once you've created and customized a quote, Flashquotes provides multiple options for sharing it with your potential customers.
Learn how to [configure your quote template](/contacts/quote-view) for a modern, conversion-optimized experience that
can significantly boost your booking rates.
## Sending Options
### Email Delivery
1. Click the `Send quote` button
2. Select the appropriate booking form
3. Select your send from email address
4. Add recipient email address(es)
5. Review and customize your subject line and email body
6. Click `Send`
Need to add another email address? Click `+ Add email` to [connect a new
Google account](/settings/integrations/google). Learn why [Google Workspace/Gmail is recommended](/settings/integrations/email-provider) for professional quote sending.
Easily set a default custom email body and personalized subject line in your [quote
settings](https://app.flashquotes.com/settings/quotes?tab=email). Subject lines support lead-specific shortcodes like `{{lead.first_name}}` for better personalization.
### Email Analytics
Admins can now track how leads interact with quote emails through comprehensive analytics:
#### Quick Overview
* On the [Pipeline](/pipeline) page, look for the eye icon next to sent quotes to see the number of times each quote has been opened
#### Detailed Analytics
When viewing a sent quote, you'll find detailed email analytics including:
* Number of times the quote email has been sent
* Total number of opens
* First and last open timestamps
* Complete activity timeline showing all sent and opened events
This information helps you understand lead engagement and optimize your follow-up strategy.
### Manual Share Options
To share a quote link manually:
1. Click `More actions` in the top right
2. Select `Share quote link`
3. Choose the appropriate booking form
4. Copy and share the link
5. Click `Mark as sent` when done
Quotes will expire a certain number of days after being sent. Expired quotes cannot be booked - customers will be prompted to request a new quote or contact you. Configure default expiration in your [quote settings](/settings/quotes).
When sending quotes, always ensure you select the correct [booking
form](/forms/booking). This will determine the booking form presented when
your lead books the event.
Payment terms are configured directly on the quote in the Booking Flow section.
Learn more in our [Booking Flow guide](/contacts/booking-flow).
## Best Practices
1. Review quote details before sharing
2. Ensure the correct booking form is selected before sending
3. Follow up with leads as needed
4. Track quote status regularly
5. Monitor for client engagement
## Next Steps
After sending a quote:
* Follow up with leads as needed
* [Review bookings](/bookings) when your quote is booked
## Handling Expired Quotes
When quotes reach their expiration date, they become unbookable to ensure pricing and availability remain current.
### What Happens When Quotes Expire
When customers view an expired quote, they:
* See a clear message that the quote has expired
* Cannot proceed with booking
* Are presented with two options:
1. **Request a New Quote** - Starts a fresh conversation with updated pricing
2. **Contact Company** - Reach out directly to discuss options
This ensures customers always receive current pricing and availability.
The expired quote prevention feature protects your business by:
* Preventing bookings with outdated pricing
* Ensuring availability is verified before booking
* Avoiding conflicts with pricing changes or discontinued services
* Reducing disputes over old rates
Admins can modify expiration dates at any time from:
* **Contact Details Page** - Edit directly from the contact view
* **Quote Edit Page** - Change while editing quote details
* **Quote View Page** - Quick edit from the quote preview
You can:
* Extend quotes that are about to expire
* Reactivate expired quotes by setting a future date
* Remove expiration entirely for special cases
### Best Practices for Quote Expiration
Check your [Pipeline](/pipeline) regularly for quotes nearing expiration. Proactively extend them if you're still in conversation with the lead.
Send a reminder email 2-3 days before expiration to create urgency and offer to answer any questions.
If a lead re-engages after expiration, simply extend the expiration date to make the quote bookable again.
For significantly expired quotes (30+ days), consider creating a new quote with updated pricing rather than extending the old one.
Set your default expiration period in [quote settings](/settings/quotes) to balance urgency with giving clients adequate decision time. Most companies find 7-14 days optimal.
## Tracking Quote Performance
Our analytics tools help you understand how leads interact with your quotes, giving you valuable insights into engagement and helping you time your follow-ups perfectly.
### Understanding Quote Analytics
The system tracks three key engagement metrics for your quotes:
1. **Email Opened**\
Track how many times your quote emails have been opened. Each email open indicates potential interest from your lead.
2. **Quote Viewed**\
See how many times someone has clicked through to view your quote presentation page online. This metric helps you understand if leads are taking the time to review your detailed proposal.
3. **Book Now Clicked**\
Monitor how many times leads have clicked the "Book Now" button. This is a strong indicator of intent to book your services.
### Where to Find Analytics
You can find these metrics in two main places:
#### Pipeline & Contact Detail Pages
Look for colored badge pills next to your leads showing:
* Email open count
* Quote view count
* "Book Now" button click count
These quick indicators help you identify your most engaged leads at a glance.
#### Quote Detail Page
For a more comprehensive view, visit the Quote Detail page to see all engagement metrics in one place. This detailed view helps you understand the full journey of how leads are interacting with your quotes.
### Using Analytics Effectively
* **Time Your Follow-ups**: High engagement (multiple email opens or quote views) might indicate a lead is actively considering your services—a perfect time for follow-up.
* **Identify Hot Leads**: Leads who have clicked the "Book Now" button are showing strong intent and should be prioritized.
* **Track Response Patterns**: Understanding when leads typically view quotes can help you optimize when to send them.
# Service Days
Source: https://docs.flashquotes.com/contacts/service-days
Create multi-day quotes with flexible scheduling
## Overview
Service days let you build multi-day quotes with different dates and times per day. Perfect for wedding weekends, corporate events, and festivals.
Each service day becomes a separate event when the quote is booked.
## How It Works
1. **Add service days** to your quote with different dates/times
2. **Client books** - each service day becomes an event
3. **Manage events** separately while keeping them under one booking
## Creating Service Days
Navigate to a quote and find the Service Days section.
Click + to add a service day.
Pick date and set start/end times.
Click check icon to save.
## Managing Service Days
### Edit
* Click pencil icon to edit any service day
* Change date, start time, or end time
* Save with check icon, cancel with X
### Remove
* Click trash icon to delete
* Can't delete the last service day
* Associated line items are also removed
Deleted service days cannot be recovered.
## Common Scenarios
### Wedding Weekend
* **Day 1**: Setup/rehearsal (2-4 hours)
* **Day 2**: Main wedding (8-12 hours)
* **Day 3**: Breakdown (2-3 hours)
### Corporate Event
* **Day 1**: Setup (4-6 hours)
* **Day 2**: Main event (8-10 hours)
* **Day 3**: Breakdown (3-4 hours)
### Festival
* **Day 1**: Setup
* **Day 2**: Main festival
* **Day 3**: Closing/breakdown
## Best Practices
### Planning
1. Start with main event day
2. Add setup/breakdown days
3. Include buffer time
4. Consider staff availability
### Pricing
* Charge different rates for setup vs main event days
* Offer package discounts for multi-day events
* Use different add-ons per day
## Integration
### Quote Template
* Each service day shows with specific date/time
* Real-time availability per day
* Professional multi-day presentation
### Booking Flow
* Service days become separate events
* All events linked under one booking
* Single invoice covers all days
## Troubleshooting
You must keep at least one service day per quote.
Check your location settings in company settings.
Click the check icon to save. X icon cancels edits.
## Next Steps
* [Create quotes](/contacts/quotes)
* [Quote template](/contacts/quote-view)
* [Manage bookings](/bookings)
* [Handle events](/events)
# Add Flashquotes to Your Website
Source: https://docs.flashquotes.com/embed-form
Embed your lead intake form on any website in minutes
Get your Flashquotes form on your website in three simple steps. Works with WordPress, Squarespace, Webflow, Wix, and any other website builder.
Go to **Forms** > select your form > click **Share** > click **Get the code to embed it in your website**
Select your website builder from the dropdown (or **General Embeds** for any site), then copy the code.
Add a **Code Block** to your website, paste the embed code, and publish.
Customize your form's button color in **Settings** > **Branding**.
Platform-specific instructions, troubleshooting tips, and customization options.
Don't want to embed? Use a Flashquotes-hosted page instead - perfect for Instagram and social media.
# Managing Events
Source: https://docs.flashquotes.com/events
Learn how to manage events and track event details in Flashquotes
## Overview
The **Event Schedule** page gives you an operational overview of your upcoming events, including task status, staff assignments, resource allocation, and payment tracking. It's your central hub for managing event delivery. Use the toggle at the top to switch between **List** and **Calendar** views.
## Events Dashboard
### Status Indicators
The dashboard uses color coding to track event status:
* **Green**: Completed tasks, fully staffed, resources assigned
* **Yellow**: Incomplete tasks, requires attention
* **Red**: Critical issues - staff shortage, resource shortage, overdue payments
Status indicators appear for:
* Admin task completion
* Staff assignments
* Resource allocation
* Payment status (Paid, Pending, Partially paid, Open, Overdue, Draft)
These visual indicators help quickly identify events that need immediate attention.
## Event Management
### Event Details
Monitor and manage:
* Required preparations
* Assignment status
* Payment tracking
* Resource allocation
Track essential information:
* Load-in details
* Drive times
* Staff assignments
* Cart/resource assignments
* Shift durations
* Contact information
Access venue information:
* Google Maps integration
* Distance calculations
* Drive time estimates
* Buffer time allocation
Drive times automatically update based on real-time traffic data.
### Event Information
Manage event specifics:
* Guest count
* Service location
* Parking information
* Loading details
* Staff requirements
* Resource needs
* Dress code
* Gratuity status
* Event type (indoor/outdoor)
Access booking information:
* View all event days from the original quote's service days
* Track related events within the same booking
* Manage service dates and times for each day
* Update individual event details or all events at once
* Handle setup, main event, and breakdown days separately
Flashquotes offers two distinct copying features to help you quickly handle repeat business and multi-day services:
**Copying an Event (Add Another Service Day)**
* Creates a new event within the SAME booking
* Shares the same invoice and payment structure
* Perfect for adding another service day to an existing booking
* Example: Client wants to add a second day of service to their wedding weekend
* Access via: Event details page → "Make a copy" button
**Copying a Booking (Duplicate Entire Booking)**
* Creates an entirely NEW booking with new invoice
* Duplicates all events from the original booking
* Generates fresh invoice and payment schedule
* Perfect for repeat clients or similar events
* Example: Client loved your service and wants to book you for next year's event
* Access via: Booking details page → Copy booking option
**Quick Guide:**
* Same client, additional day = Copy Event
* New occasion or repeat booking = Copy Booking
When you copy an event, the new event inherits most details from the original (staff, resources, timeline) but you can customize the date, time, and specific requirements.
## Additional Features
Manage timing with:
* Service date changes
* Time adjustments
* Schedule updates
* Shift management
Track client history:
* Past quotes
* Previous bookings
* Service history
* Client preferences
## Special Notes
Add internal notes and reminders for your team using the rich text editor. Special notes support full formatting including:
* **Text styling**: Bold, italic, underline, strikethrough
* **Structure**: Headings (H1, H2, H3), bullet lists, numbered lists
* **Visual dividers**: Horizontal rules to separate sections
* **Links**: Add hyperlinks to external resources or documents
**Quick tips:**
* Click the formatting buttons in the toolbar to apply styles
* Press `Cmd+Enter` (Mac) or `Ctrl+Enter` (Windows) to save quickly
* Use headings to organize longer notes
* Existing Markdown notes automatically convert when you edit them
Special notes are internal-only and perfect for staff reminders, setup instructions, or event-specific details that your team needs to know.
## Best Practices
1. Regularly monitor status indicators
2. Keep contact information current
3. Verify resource assignments
4. Update special notes promptly with clear formatting
5. Check drive times for accuracy
## Next Steps
After setting up an event:
* [Configure event brief with checklists](/events/event-brief)
* [Manage timeline](/events/timeline)
* [Assign staff](/staff)
* [Track resources](/resources)
* [Set up task templates](/settings/tasks)
# Event Brief
Source: https://docs.flashquotes.com/events/event-brief
Learn how to create and manage comprehensive event briefs with customizable checklists for your team
## Overview
The Event Brief serves as the day-of-service documentation for your team. It provides a shareable, dynamic document that contains all necessary information for successful event execution, accessible via a public link without requiring a Flashquotes account.
Each event brief includes customizable checklists that ensure your staff knows exactly what to pack, what to do, and how to put on a great event. You can create multiple checklists per event and save them as templates to reuse across future events - mixing and matching based on event type, services offered, or team roles.
## Brief Structure
### Section Organization
Includes:
* Staff assignments with contact information
* Required equipment list
* Event description
* Indoor/outdoor status
* Dress code requirements
* Customizable checklist tasks
Special add-ons appear as prominent yellow banners to ensure visibility.
Contains:
* Venue address with Google Maps integration
* Estimated drive time
* Site contact information
* Parking instructions
* Loading dock details
* Building access information
Details:
* Setup duration
* Tip jar policies
* Gratuity information
* Customizable setup checklist tasks
* Equipment placement
* Venue requirements
Covers:
* Service start/end times
* Cart presentation standards
* Disposal policies
* Service extension procedures
* Guest interaction guidelines
* Customizable service checklist tasks
Includes:
* Cleanup duration
* Departure timeline
* Customizable cleanup checklist tasks
* Equipment breakdown procedures
Contains:
* Return navigation
* Expected drive time
* Customizable return checklist tasks
* Restocking procedures
* Equipment maintenance tasks
## Which Line Items Appear on the Brief
Services and add-ons show up on the event brief. "Other" line items don't.
* **Services** (the green box icon on line items) — listed with their quantities under **Event services** in the brief's details section
* **Add-ons** (the blue box icon with a plus on line items) — listed with their quantities under **Add-on services** in the details section. Add-ons also trigger a yellow banner at the top of the brief so your team knows to review Prep & Loading closely.
**Other line items** are just text on the quote. They aren't tied to a service or add-on, so the brief has nowhere to put them.
Quick check: line items with a colored box icon appear on the brief. Line items with a gray dot don't.
Need to get information to your staff on the brief? Use [services](/services/core-services), [add-ons](/services/add-ons), [event checklists](#checklist-management), internal notes on the event, and similar event details — they all flow onto the brief automatically.
## Checklist Management
### Creating Checklists
**Plus Subscription Features**: Multiple checklists per event and template management require a Flashquotes Plus subscription. Free plans include one checklist per event with basic task management.
Each event brief can have multiple checklists to organize tasks for different services and staff. You have three ways to create checklists:
Creates a new checklist with standard tasks:
1. Navigate to the Event Brief tab
2. Click "Add checklist"
3. Select "Add default checklist"
4. The system creates a checklist with predefined tasks for each section
Default checklists include common tasks like equipment checks, setup procedures, and cleanup items.
Duplicate a checklist from the current event:
1. Click "Add checklist"
2. Choose from the "Copy event checklist" section
3. Select the checklist you want to duplicate
4. A new checklist is created with all the same tasks
This is perfect when you need variations of the same checklist or want to create specialized versions for different team members.
Use a saved template to create a checklist:
1. Click "Add checklist"
2. Browse the "Add from template" section
3. Select your desired template
4. The checklist is created with all template tasks
Templates are reusable across all events and can be managed company-wide.
### Managing Checklist Tasks
Customize tasks within each checklist section:
* Click on any task to edit its description
* Use markdown formatting for rich text (links, bold, italic)
* Press Enter to save or Escape to cancel
* Tasks automatically sync across all viewers
Tasks are organized into six sections: Prep & Loading, Travel to Event, Setup, Service, Post-Event Cleanup, and Return & Unload.
Drag and drop to reorder tasks:
* Hover over a task to see the drag handles
* Click and drag to reorder within a section
* Changes are saved automatically
* Order is maintained for all staff viewing the brief
Add custom tasks to any section:
1. Navigate to the desired section
2. Click "Add task"
3. Enter your task description
4. Use markdown for formatting if needed
5. Press Enter to save
Add specific instructions, equipment checks, or client-specific requirements as custom tasks.
Delete unnecessary tasks:
* Click "Delete" next to any task
* Confirm the deletion
* Task is immediately removed for all viewers
Deleted tasks cannot be recovered. Consider editing instead of deleting if you might need the task later.
Flashquotes uses a rich text editor (TipTap) for content formatting throughout the platform. This provides a user-friendly, visual editing experience similar to Google Docs or Microsoft Word.
Flashquotes does not support markdown syntax. Content is created and edited using the visual rich text editor interface.
## Available Formatting Options
The rich text editor provides standard formatting tools:
### Text Styling
* **Bold text** - Use the bold button in the toolbar
* *Italic text* - Use the italic button in the toolbar
* Underlined text - Use the underline button in the toolbar
### Lists and Structure
* Bulleted lists
* Numbered lists
* Headings (H1, H2, H3)
* Paragraphs with proper spacing
### Links and Media
* Hyperlinks - Select text and use the link button
* Email links
* Image insertion (where supported)
## Where You'll Use the Rich Text Editor
The rich text editor appears in several areas of Flashquotes:
* Quote descriptions and notes
* Email templates and content
* Form instructions and help text
* Invoice notes and terms
## Tips for Best Results
* Use the formatting toolbar buttons rather than trying to type markdown syntax
* Preview your content before saving to ensure it displays correctly
* Keep formatting simple and professional for customer-facing content
* Use headings to organize longer content sections
If you're familiar with markdown and prefer that workflow, the rich text editor may feel different initially. However, it provides better WYSIWYG editing for most users.
### Template Management
Save successful checklists as reusable templates:
1. Select the checklist you want to save
2. Click "Checklist options" → "Save as template"
3. Enter a descriptive template name
4. Click "Save Template"
Use descriptive names like "Wedding Reception Setup" or "Corporate Event Cleanup" to make templates easy to find.
Edit and organize your template library:
* Templates are available company-wide
* Delete outdated templates by clicking the trash icon
* Edit your default checklist template from "Checklist options" → "Edit defaults"
* Templates sync across all team members
Deleting a template doesn't affect checklists already created from that template.
Templates benefit your entire organization:
* All team members can use company templates
* Standardize procedures across events
* Maintain consistency in service quality
* Update templates to improve all future events
### Multiple Checklist Workflow
Multiple checklists require a Flashquotes Pro subscription. This feature allows you to create role-specific or service-specific task lists within a single event.
Use multiple checklists to organize complex events:
* Create role-specific checklists (e.g., "Lead Barista", "Setup Crew")
* Create service-specific checklists (e.g., "Drip Coffee Bar", "360 Photo booth")
* Use descriptive names for easy identification
* Click checklist names to switch between them
Rename checklists for better organization:
1. Click on the selected checklist name
2. Edit the name inline
3. Press Enter to save or Escape to cancel
4. Names update immediately for all viewers
Use names like "Barista Tasks", "Manager Checklist", or "Premium bar cart" to clearly identify each checklist's purpose.
Delete unnecessary checklists:
1. Select the checklist to delete
2. Click "Checklist options" → "Delete checklist"
3. Confirm the deletion
You cannot delete the last remaining checklist. Each event brief must have at least one checklist.
## Gratuity Visibility
You can control whether staff see the pre-paid gratuity amount on event briefs. By default, the gratuity is shown. Hiding it is useful if you'd rather not disclose tip amounts to staff before an event.
This is a company-level setting — changing it affects **all current and future event briefs** immediately.
### How to show or hide gratuity
1. Open any event from the **Event Schedule** page
2. Scroll to the **Tip amount** field in the event details panel
3. Below the tip amount, you'll see a status line — *Currently shown on staff event brief* or *Currently hidden* — with a toggle link
4. Click **Hide tip** or **Show tip**
5. Confirm the change in the dialog
When hidden, the pre-paid gratuity is not shown on the event brief.
This setting applies to your entire company. There is no way to hide gratuity for specific events only.
## Sharing and Access
### Distribution Options
Share the event brief:
1. Navigate to the Event Brief tab
2. Copy the "Share link" and send it to your team
Staff can access the brief using the link without logging into Flashquotes
The event brief automatically updates when you modify:
* Timeline changes
* Staff assignments
* Special instructions
* Contact information
* Add-on services
## Best Practices
### Event Brief Management
1. Share briefs well in advance of event day
2. Verify all sections are complete
3. Double-check contact information
4. Update special instructions as needed
5. Confirm staff have accessed the brief
6. Use [markdown formatting](#enhanced-tasks-with-markdown) in tasks for better clarity and organization
### Checklist Best Practices
* Use clear, actionable language for tasks
* Include specific quantities and measurements
* Add time estimates for complex tasks
* Reference equipment by specific names or model numbers
* Include safety reminders and protocols
* Use [markdown formatting](#enhanced-tasks-with-markdown) to add links, emphasis, and structure to tasks
* Create role-specific checklists for different team members
* Use consistent naming conventions across events
* Regularly review and update templates based on team feedback
* Share successful checklist configurations with your team
* Save successful checklists as templates after events
* Update templates based on lessons learned
* Remove outdated or unused templates regularly
* Gather feedback from staff on checklist effectiveness
* Review all checklists before sharing the event brief
* Test templates with new events to ensure completeness
* Keep backup copies of critical checklist templates
* Maintain a master template for standard events
## Next Steps
After creating event briefs with checklists:
* [Review timeline details](/events/timeline)
* [Manage staff assignments](/staff)
* [Configure task defaults](/settings/tasks)
* Monitor brief access and checklist completion
* Gather team feedback on checklist effectiveness
* Save successful checklists as templates for future events
# Reminders
Source: https://docs.flashquotes.com/events/reminders
Tag and manage important event information for your staff
# Reminders
Reminders are important flags or notes that can be attached to events to highlight critical information for your staff. They appear prominently in both the event details and event brief pages, ensuring that crucial information is never missed.
## How Reminders Work
### Adding Reminders
You can add reminders to any event through the Notes widget:
1. Click the reminders dropdown in the Notes widget
2. Select from existing company reminders in the list
3. Or scroll to the bottom and type a new reminder in the input field
4. Press Enter or click to add the reminder
Once added, reminders are immediately visible on the event and will be displayed to all staff members who have access to the event. The system uses optimistic updates for instant feedback while syncing in the background.
### Visibility and Display
Reminders are strategically displayed in two key locations:
1. In the "Prep & Loading" section of the event brief
2. In the Notes widget of the event details page
For high visibility, reminders appear as pink pill badges with a dot indicator. Multiple reminders can be added to a single event and are automatically sorted alphabetically for easy reference.
### Warning Banner
When an event has reminders attached, a warning banner appears at the top of the event brief. This feature ensures that:
* Staff members are immediately aware of important information before starting their shift
* Critical information from both reminders and add-ons is prominently displayed
* Important details cannot be overlooked
## Managing Reminders
### Adding and Removing Reminders
* **Adding**: Use the dropdown menu to select existing company reminders or create new ones at the bottom of the list
* **Removing**: Click the X next to any reminder to remove it from the event
* **Company-wide Reminders**: Managed at Settings → Reminders for consistency across all events
* **Custom Reminders**: Can be created on-the-fly for specific events
## Best Practices
To make the most of the Reminders feature, follow these guidelines:
1. **Keep it Critical**: Use reminders for truly important information that staff must be aware of
2. **Be Concise**: Keep reminder text short and clear
3. **Stay Consistent**: Use standardized reminders across similar events
4. **Regular Review**: Periodically review reminders to ensure they remain relevant
5. **Standardize**: Create company-wide reminders for common situations
## Common Use Cases
Reminders are particularly useful for:
* Equipment requirements
* Safety precautions
* Special client requests
* Setup requirements
* Venue-specific instructions
* Dietary restrictions or allergies
* Special handling instructions
By using reminders effectively, you can ensure that important information is prominently displayed and doesn't get lost in longer notes or instructions.
# Timeline
Source: https://docs.flashquotes.com/events/timeline
Learn how to manage and customize event timelines for optimal service delivery
## Overview
The Timeline feature in Flashquotes helps manage the complete chronological flow of your events, from preparation through completion. It automatically calculates shift durations and ensures proper timing for all event phases.
## Timeline Components
### Time Parameters
Configure:
* Pack-up duration
* Equipment loading time
* Pre-departure checks
* Resource allocation
Includes:
* Drive time to venue
* Buffer for traffic
* Return trip estimation
* Route optimization
Travel times are calculated using Google Maps integration. Update manually if traffic conditions require adjustment.
Manage:
* Setup time
* Service period
* Cleanup duration
* Pack-up time
## Timeline Management
### Configuration Options
Set standard durations for:
* Loading time at headquarters
* Travel buffer periods
* Setup requirements
* Service duration
* Cleanup allocation
* Unloading time
These defaults auto-populate for new events but can be customized per event.
Modify timelines for:
* Rush hour considerations
* Venue-specific requirements
* Special event needs
* Extended service periods
### Automatic Calculations
The system automatically:
* Calculates total shift duration
* Adjusts staff schedules
* Updates client confirmations
* Modifies event briefs
Always review auto-calculated times for special circumstances.
## Best Practices
1. Set realistic default times
2. Account for seasonal traffic patterns
3. Add buffer time for complex setups
4. Consider venue-specific requirements
5. Review timelines for multi-day events
## Next Steps
After configuring timelines:
* [Review event brief](/events/event-brief)
* [Manage staff schedules](/staff)
* Monitor actual vs. planned times
* Adjust defaults based on experience
# Payments
Source: https://docs.flashquotes.com/finance/payments
Track and monitor client payments through Stripe's integrated dashboard
## Overview
The Payments page gives you two views of your payment data: a native flashquotes payments table for sorting, searching, and exporting all your payments in one place, and the Stripe embedded dashboard for detailed transaction management, disputes, and refunds.
## Accessing the Payments Dashboard
Go to **Payments** in the sidebar to open your payment tracking dashboard.
The Payments dashboard requires an active Stripe integration. If you haven't connected Stripe yet, visit [Settings → Integrations](/settings/integrations/overview) to set up your payment processing.
## Dashboard Features
### Stripe Connect Integration
Flashquotes uses Stripe's embedded ConnectPayments component, providing you with:
* **Real-time payment monitoring**: View payments as they process
* **Advanced filtering**: Filter by amount, date, status, and payment method
* **Professional dispute management**: Handle chargebacks and disputes directly
* **Payment capture controls**: Manage authorization and capture for card payments
* **Export capabilities**: Download payment data for accounting and analysis
### Payment Information
The dashboard displays comprehensive payment details including:
* **Transaction status**: Real-time status updates (succeeded, pending, processing, failed)
* **Payment details**: Amount, currency, and processing fees
* **Customer information**: Billing details and payment methods
* **Timeline**: Complete payment history and status changes
* **Related invoices**: Links to associated Flashquotes invoices
## Payments Table
Consolidated view of all your payments applied to Flashquotes invoices.
### What's in the table
* All payments across invoices, including manually recorded transactions
* Sortable columns — click any header to sort by amount, date, status, and more
* Locale-aware currency formatting for multi-currency businesses
### Search and filter
* Use the search bar to find payments by customer name, invoice, or other details
* Filter by payment status, date range, or other criteria to narrow your results
### CSV export
1. Apply any filters to scope your results
2. Click **Export CSV**
3. Select which columns to include
4. Open the download in Excel, Google Sheets, or any spreadsheet tool
The export only includes payments matching your active filters — no extra cleanup needed.
## Filtering and Search
The Stripe dashboard provides powerful filtering options:
Filter payments by amount using:
* Equals specific amount
* Greater than threshold
* Less than threshold
* Between range
View payments by date:
* Before specific date
* After specific date
* Between date range
* Preset ranges (today, this week, this month)
The integrated search allows you to find payments by:
* Customer name or email
* Payment ID
* Card last 4 digits
* Metadata fields
Filter by payment type:
* Card payments
* Bank transfers (ACH)
* Other payment methods
## Payment Actions
### View Details
Click any payment to access:
* Full transaction timeline
* Processing and net amounts
* Fee breakdown
* Risk evaluation details
* Related customer and invoice information
### Refund Management
Process refunds directly from the dashboard:
1. Select a succeeded payment
2. Click "Issue refund"
3. Choose partial or full refund
4. Add an optional reason for your records
5. Confirm the refund
Refunds are processed immediately and cannot be reversed. Always confirm the refund amount before processing.
### Dispute Management
Handle payment disputes professionally:
* View dispute reason and evidence requests
* Submit compelling evidence
* Track dispute status and deadlines
* Communicate with Stripe's dispute team
The dispute management feature helps you respond to chargebacks efficiently, improving your win rate and protecting your revenue.
### Payment Capture
For card payments using separate authorization and capture:
* View authorized but uncaptured payments
* Capture full or partial amounts
* Cancel authorizations when needed
## Manual Payment Tracking
In addition to Stripe payments, Flashquotes supports manual payment recording for:
* Check payments
* Cash transactions
* Bank transfers outside Stripe
* Other payment methods
These appear in your invoice payment tables but are tracked separately from Stripe transactions.
## Export and Reporting
The Stripe dashboard includes robust export functionality:
* Download payment data as CSV
* Filter exports by date range and status
* Include all transaction details and metadata
* Use exports for accounting reconciliation
## Best Practices
1. **Regular monitoring**: Check the dashboard daily for failed payments or disputes
2. **Timely refunds**: Process refund requests promptly to maintain customer satisfaction
3. **Dispute response**: Respond to disputes quickly with compelling evidence
4. **Export regularly**: Download payment data monthly for accounting records
5. **Filter effectively**: Use filters to focus on specific payment segments
## Related Topics
* [Invoice Management](/invoices)
* [Processing Refunds](/invoices/refunds)
* [Stripe Integration Setup](/settings/integrations/overview)
* [Payouts and Deposits](/finance/payouts)
* [Sales Tax Report](/reports/sales-tax)
# Payouts
Source: https://docs.flashquotes.com/finance/payouts
View when your Stripe payments will be deposited to your bank
## Overview
The Payouts view shows when funds from customer payments will be deposited into your bank account. Stripe payouts transfer your available balance to your bank on a schedule you configure in your Stripe account settings.
To open it, go to **Payments** in the sidebar, then click the **Payouts** tab.
## What You'll See
The dashboard displays:
* **Upcoming payouts** with expected deposit dates
* **Payout history** showing past deposits
* **Available balance** ready for payout
* **Individual transactions** included in each payout
Most businesses receive payouts on a 2-day rolling basis, meaning payments made on Monday are deposited on Wednesday. Your specific schedule depends on your Stripe account configuration.
## Instant Payouts
Need funds immediately? If your Stripe account is eligible, you can request an instant payout to receive funds within 30 minutes. This feature is useful for urgent expenses but includes an additional fee (typically 1% of the payout amount).
To request an instant payout:
1. Check your available balance in the dashboard
2. Click "Request Instant Payout"
3. Enter the amount you need
4. Funds arrive within 30 minutes
Learn more about requirements and fees in [Stripe's Instant Payouts documentation](https://docs.stripe.com/payouts/instant-payouts).
## Additional Resources
For detailed information about payouts, including schedules, fees, and bank requirements, refer to:
* [Stripe Payouts Overview](https://docs.stripe.com/payouts)
* [Payout Timing](https://docs.stripe.com/payouts/payout-schedule)
* [Managing Your Payout Schedule](https://docs.stripe.com/payouts/manage-payout-schedule)
## Related Topics
* [Payment Tracking](/finance/payments)
* [Invoice Management](/invoices)
* [QuickBooks Integration](/finance/quickbooks)
# Custom item mapping
Source: https://docs.flashquotes.com/finance/quickbooks-custom-mappings
Map specific services, add-ons, and service charges to QuickBooks items
Override default QuickBooks item mappings for specific services, add-ons, and service charges. Use this when certain items need different accounting treatment than your defaults.
## When you need this
**Common scenarios:**
* Service requires different income account
* Add-on must track to a specific category
* Service charge must track to specific expense account
* Package pricing needs separate tracking
Default mappings handle most cases. Only create custom mappings when specific items need different QuickBooks items.
Requires QuickBooks Online integration and Pro subscription. [Set up QuickBooks](/settings/integrations/quickbooks) first.
## How mappings work
**Priority order:**
1. Custom mapping (if exists) → uses specified QuickBooks item
2. Default mapping → uses line item type default
3. No mapping → uses QuickBooks default mapping (usually "Sales")
**Example:** You have "Coffee Cart" service mapped to "Premium Catering" item. All other services use the default "Catering Services" item.
## Create a custom mapping
1. Go to Settings > Integrations > QuickBooks
2. Scroll to Line Item Custom Mapping section
3. Click **Add Mapping**
4. Select type: Service, Add-on, or Service Charge
5. Choose Flashquotes item from dropdown
6. Select QuickBooks item from dropdown
7. Mapping saves automatically
What happens next: Future syncs use the custom QuickBooks item for that specific Flashquotes item. Existing invoices in QuickBooks aren't changed.
## View existing mappings
All custom mappings appear in the Line Item Custom Mapping card.
**What you see:**
* Type (Service, Add-on, or Service Charge)
* Flashquotes item name
* Mapped QuickBooks item name
* Delete button (hover to reveal)
## Delete a mapping
1. Go to Settings > Integrations > QuickBooks
2. Find the mapping in Line Item Custom Mapping
3. Hover over the row
4. Click trash icon
What happens next: Future syncs use the default mapping for that line item type. Existing QuickBooks records aren't changed.
## Mapping rules
**One mapping per item:**
* Each Flashquotes item can have one custom mapping
* Updating a mapping replaces the previous one
* Multiple items can map to the same QuickBooks item
**Deletions:**
* Deleting a Flashquotes item removes its custom mapping
* Deleted mappings can't be recovered
* Default mapping takes over immediately
## Common issues
* **Mapping not saving**: Check you selected both Flashquotes item and QuickBooks item
* **Wrong item syncing**: Custom mappings override defaults - check custom mappings first
* **Can't find QuickBooks item**: Click Refresh button to update QuickBooks data
* **Mapping disappeared**: Flashquotes item may have been deleted
## Best practices
1. **Start with defaults** - Only create custom mappings when needed
2. **Document your mappings** - Note why specific items need custom treatment
3. **Review quarterly** - Ensure mappings still make sense
4. **Test with one invoice** - Verify mapping works before bulk syncing
## Related topics
* [QuickBooks Integration Setup](/settings/integrations/quickbooks)
* [Manual Payment Sync](/finance/quickbooks-sync)
* [Service Charges](/settings/service-charges)
# QuickBooks Sync
Source: https://docs.flashquotes.com/finance/quickbooks-sync
How payments, deposits, and refunds sync between Flashquotes and QuickBooks Online
Flashquotes syncs payments, deposits, and refunds to QuickBooks Online. This page covers how sync works and how to manually sync individual transactions.
QuickBooks sync requires an active Pro subscription and QuickBooks Online connection. Set up QuickBooks integration first in [Settings → Integrations](/settings/integrations/quickbooks).
QuickBooks syncing is only supported for accounts using USD currency in the United States.
## How deposits work
Flashquotes creates QuickBooks deposits differently depending on the payment method:
**Stripe payments** — Deposits are created automatically when Stripe sends the payout to your bank. Multiple payments from the same payout are grouped into a single aggregate deposit that matches your bank statement. Each deposit includes the Stripe payout trace ID in the memo field for easy bank reconciliation.
**Manual payments** (cash, check) — Deposits are created immediately when you sync the payment to QuickBooks.
### Failed payouts
If a Stripe payout fails, Flashquotes automatically removes the corresponding deposit from QuickBooks and clears the deposit link from affected payments. No manual cleanup is needed.
## Sync a payment
1. Go to an invoice with payment activity
2. Find the payment in the Payment Activity table
3. Click **Sync Payment** next to the payment
4. Wait for sync to complete (button shows loading spinner)
What happens next: The payment syncs to QuickBooks as an invoice and payment record. For manual payments (cash, check), a bank deposit is also created immediately. For Stripe payments, the deposit is created later when the payout arrives. The sync button disappears and shows a QuickBooks icon.
## Sync a refund
1. Go to an invoice with refund activity
2. Find the refund in the Payment Activity table
3. Click **Sync Refund** next to the refund
4. Wait for sync to complete
What happens next: The refund syncs to QuickBooks as a refund record. You'll see a QuickBooks icon showing the sync is complete.
## When to use manual sync
Use manual sync when:
* QuickBooks connection was set up after payments were processed
* You want to sync only specific transactions
* Automatic sync failed for individual payments
* You need to control timing of accounting entries
## Prerequisites
Before syncing payments, verify these settings in QuickBooks integration:
* **Deposit bank account**: Where payments are deposited
* **Fee expense account**: For processing fees
* **Refund bank account**: For refund transactions (refunds only)
Missing account mappings will cause sync to fail. Check your QuickBooks integration settings if sync doesn't work.
## Common issues
* **Sync button not visible**: Check you have Pro subscription and QuickBooks connected
* **"Already synced" error**: Payment was previously synced to QuickBooks
* **"Invoice already paid" error**: QuickBooks invoice has zero balance remaining
* **Account mapping missing**: Set up required bank and expense accounts in QuickBooks settings
* **Deposit not appearing yet**: For Stripe payments, deposits are created when the payout reaches your bank (typically 1-2 business days)
## What gets created in QuickBooks
**For payments:**
* Invoice record (if not already exists)
* Payment record linked to invoice
* Bank deposit (immediately for manual payments; on payout for Stripe payments)
**For Stripe payout deposits:**
* Single aggregate deposit grouping all payments from the payout
* Stripe processing fees recorded as expense line items
* Payout trace ID in the deposit memo for bank reconciliation
**For refunds:**
* Refund record
* Bank account deduction
## Limitations
* Can only sync payments with valid amounts greater than \$0
* Previously synced payments can't be synced again
* Requires customer email to match or create QuickBooks customer
* Stripe fees and Flashquotes platform fees are automatically calculated and recorded
## Related topics
* [QuickBooks Integration Setup](/settings/integrations/quickbooks)
* [Custom Line Item Mappings](/finance/quickbooks-custom-mappings)
* [Payment Management](/finance/payments)
* [Processing Refunds](/invoices/refunds)
# Booking Form
Source: https://docs.flashquotes.com/forms/booking
Configure your instant booking form for converting quotes to bookings
## Overview
The Booking Form collects customer information when they accept a quote. With optimized question pages and a mobile-friendly design, it provides a professional checkout experience for converting quotes into confirmed bookings.
## Form Structure
Features:
* Single question per page format
* Mobile-optimized design
* High conversion rate focus
The single-question-per-page approach maximizes completion rates, especially on mobile devices.
Modify the booking form:
* Edit existing questions
* Add new questions
* Remove unnecessary fields
* Customize question order
* Mark questions as required or optional
Control which questions are mandatory for form submission:
1. Open a question in the form editor
2. Find the "Required" toggle in the question settings
3. Toggle on to make the question mandatory, or off to make it optional
**System-Required Questions:**
* Some questions are required by Flashquotes and cannot be changed
* These questions show "This question is required by Flashquotes" instead of a toggle
* System-required questions ensure essential data is collected for booking processing
**User-Required Questions:**
* You can mark custom questions as required or optional
* Required questions must be completed before form submission
* Optional questions allow customers to skip if not applicable
Balance required fields carefully—too many required questions can reduce conversion rates, while too few may result in incomplete booking information.
Show or hide form pages based on the service or add-on included in a quote.
For example, show a "Bar Menu Preferences" page only when a bar service is on the quote—and hide it for everything else.
* Conditions are set per page in the form editor
* Pages can match on service type or specific add-ons
* Customers only see pages relevant to their booking
Conditional logic is a Plus plan feature. [Upgrade your plan](https://app.flashquotes.com/settings/billing) to enable it.
[Set up conditional logic](/forms/conditional-logic)
## Form Management
The booking form is:
* Conversion rate optimized
* Mobile-responsive
* User-friendly
* Continuously improved
Benefits of form integration:
* Streamlined booking process
* Automatic payment processing
* Reduced manual data entry
* Improved customer experience
## Best Practices
1. Maintain single-question-per-page format
2. Test form functionality across devices
3. Review conversion rates regularly
4. Keep questions relevant and minimal
## Next Steps
After configuring booking forms:
* [Configure payment terms in booking flow](/contacts/booking-flow)
* [Track bookings](/bookings)
* [Set up conditional logic for service-specific pages](/forms/conditional-logic)
* Review form analytics
* Monitor conversion rates
# Platform Compatibility
Source: https://docs.flashquotes.com/forms/compatibility
Flashquotes is compatible with virtually all website platforms through our embeddable iframe technology
## Overview
Flashquotes forms can be integrated with any website platform through iframe embed. This ensures that regardless of which website builder or CMS you use, you can easily incorporate Flashquotes forms into your existing site.
Check out our step-by-step embedding guide to get started quickly.
**Don't want to embed?** Use [Share Links](/forms/share-links) instead. Create a Flashquotes-hosted page perfect for social media, Instagram link-in-bio, or direct client sharing.
### Compatible Website Platforms
Flashquotes works with all major website platforms, including but not limited to:
| Platform | Compatible |
| -------------------------- | --------------------- |
| WordPress | |
| Wix | |
| Squarespace | |
| Webflow | |
| Shopify | |
| Ghost | |
| Weebly | |
| GoDaddy Website Builder | |
| Custom HTML/CSS/JS website | |
Wix has unique technical constraints that affect mobile display. See our [Wix Embed Best Practices](/forms/wix-embeds) guide for detailed implementation steps and mobile optimization strategies.
## Integration Options
### Share Links (No Embedding Required)
Skip embedding entirely with hosted form pages:
1. Navigate to the **Publish** tab in your form editor
2. Copy your share link
3. Use it anywhere - social media, email, or Instagram bio
Perfect for Instagram link-in-bio since Instagram doesn't allow clickable links in posts.
[Learn more about Share Links →](/forms/share-links)
### Embedding Instructions
The general process for embedding Flashquotes forms into any platform involves:
1. Navigate to **Forms** in your Flashquotes dashboard
2. Select the form you want to embed
3. Click the **Share** button
4. Click **Get the code to embed it in your website**
5. Choose your website platform from the dropdown (or **General Embeds** for any site)
6. Copy the embed code and paste it into your website
When embedding forms, place them on dedicated pages with minimal distractions
to maximize conversion rates.
## Platform-Specific Guides
### WordPress
WordPress users can embed Flashquotes forms through:
* Custom HTML blocks in the block editor
* Text widgets in sidebars or footers
* Theme template files (for developers)
### Squarespace
For Squarespace websites:
1. Add a **Code Block** to your page
2. Paste the Flashquotes embedding code
3. Save and publish your changes
### Webflow
Webflow users should:
1. Add an **Embed** element to your page
2. Paste the Flashquotes embedding code
3. Adjust the element settings as needed for proper sizing
### Shopify
For Shopify stores:
1. Edit your page or create a new one
2. Add a **Custom HTML** section
3. Paste the Flashquotes embedding code
4. Save your changes
### Wix
To embed a Flashquotes form in Wix:
1. Go to your lead intake form in the Flashquotes dashboard and click **Share** > **Get the code to embed it in your website**. **Important:** Choose **Wix** from the dropdown menu, as Wix has a unique embed snippet. Copy the embed code snippet.
2. Open your Wix website editor from your Dashboard. Navigate to the page where you want to embed your quote form.
3. Click **Add Elements** and go to the **Embed Code** section, then drag and drop an **Embed HTML** to the place on the page where you'd like your quote form to appear.
4. In the dialog box that appears, paste in your embed code from Flashquotes and click **Apply**.
5. Once you have copied your embed code, you won't have to copy the code again—simply update the design and your embed will be updated. Your embed will also be saved and can be found as an **HTML element** in your site Layers.
Wix mobile has specific display limitations. For optimal mobile experience, see our [Wix Embed Best Practices](/forms/wix-embeds) guide for mobile optimization strategies and alternative approaches.
## Responsive Design
Flashquotes forms are fully responsive and will automatically adjust to fit the container they're placed in. To ensure optimal display:
* Place forms in containers at least 600px wide when possible
* Avoid cramped sidebars for lead intake forms
* Test your embedded forms on multiple device sizes
## Troubleshooting
If your form isn't displaying correctly:
1. Make sure your platform allows iframe embedding (most do)
2. Check that no content blockers are interfering with the iframe
3. Verify you're using the latest embed code from your Flashquotes dashboard
4. Ensure the container has sufficient width for the form to display properly
## Next Steps
After embedding your forms:
* [Customize form settings](/forms/lead-intake#form-settings)
* [Configure form notifications](/settings/general)
* [Track form submissions](/contacts)
# Conditional Form Logic
Source: https://docs.flashquotes.com/forms/conditional-logic
Show or hide booking form pages based on which service or add-on a customer selects
## Conditional Form Logic
Show different form pages to different customers based on their selections. A customer who picks your espresso bar sees espresso-specific questions. A customer who picks your photo booth doesn't.
Conditional logic is only available on **booking forms**, not lead intake forms. It requires a **Plus** plan or higher. Essentials users will see an upgrade prompt in the Logic tab.
## Set up rules on a page
Go to **Settings → Forms** and open your booking form.
At the top of the editor, switch from the **Build** tab to the **Logic** tab.
Each form page shows a card with its name, question count, and current status — either **Always visible** or **N rules**.
Click the page card to expand it. Select a rule type:
* **Service rule** — show this page when a specific service is selected
* **Add-on rule** — show this page when a specific add-on is selected
Then pick the service or add-on from the dropdown.
Add as many rules as you want. A page shows if **any** rule matches — not all of them.
## How rules work
* **No rules set** — the page is always visible to every customer
* **One or more rules** — the page only shows when at least one rule matches
* **Multiple rules use OR logic** — match any rule, not all rules
Example: set two rules on your "Espresso Questions" page — one for your Espresso Bar service and one for your Latte Add-on. The page appears for either selection.
## What customers see
When a customer fills out the booking form, pages whose conditions aren't met are automatically skipped. Required fields on hidden pages are also skipped — customers won't get stuck on a question that doesn't apply to them.
## Upgrade to Plus
Conditional logic is a **Plus** plan feature. If you're on Essentials, you'll see a prompt to upgrade when you click the Logic tab.
Upgrade to Plus to unlock conditional form logic
# Embed Your Form on Your Website
Source: https://docs.flashquotes.com/forms/embed-your-form
Add your Flashquotes lead intake form to any website in minutes
## Overview
Embedding your Flashquotes form on your website lets visitors request quotes directly from your site. It only takes a few seconds to set up and works with any website builder.
## Quick Start: 3 Simple Steps
1. Go to **Forms** in your Flashquotes dashboard
2. Click on your lead intake form
3. Click the **Share** button
4. Click **Get the code to embed it in your website**
Select your website builder from the dropdown:
* WordPress
* Squarespace
* Webflow
* Wix
* Or choose **General Embeds** for any other website
Then copy the code snippet.
In your website editor:
1. Add a **Code Block** (or HTML block) to your page
2. Paste the embed code you copied
3. Save and publish your page
That's it! Your form is now live on your website.
## Customize Your Form's Appearance
Want to match your brand colors? The form automatically uses your branding settings.
1. Go to **Settings** > **Branding**
2. Set your **Brand Color** - this controls button colors and accents
3. Upload your **Logo** if you haven't already
Changes apply automatically to all your embedded forms.
## Platform-Specific Tips
1. Click **Edit** on your page
2. Click **Add Block** and find **Code**
3. Drag the code block where you want the form
4. Click **Edit** on the block and paste your embed code
5. Save and publish
1. Edit your page in the block editor
2. Add a **Custom HTML** block
3. Paste your embed code
4. Update/publish the page
1. Add an **Embed** element to your page
2. Paste your embed code
3. Adjust sizing as needed
4. Publish your site
Wix has mobile display limitations. Make sure to select **Wix** from the platform dropdown to get the correct embed code.
1. In the Wix editor, click **Add Elements**
2. Go to **Embed Code** > **Embed HTML**
3. Drag it to your page and paste the code
4. Click **Apply**
For mobile optimization, see our [Wix Embed Best Practices](/forms/wix-embeds) guide.
Choose **General Embeds** from the dropdown. This works with:
* Shopify
* Ghost
* Weebly
* GoDaddy
* Any custom HTML website
Just find your platform's HTML or code block feature and paste the code.
## Troubleshooting
**Form not showing?**
* Make sure your website platform allows HTML/iframe embeds
* Check that no ad blockers are interfering
* Try copying fresh code from Flashquotes
**Form looks cramped?**
* Place the form in a wider container (at least 600px recommended)
* Avoid putting forms in narrow sidebars
**Need the form on mobile?**
* Flashquotes forms are responsive and work on all devices
* Wix users: see our [mobile optimization guide](/forms/wix-embeds)
## Don't Want to Embed?
Use [Share Links](/forms/share-links) instead. You'll get a Flashquotes-hosted page that's perfect for:
* Instagram link-in-bio
* Social media posts
* Email campaigns
* QR codes on business cards
## Next Steps
* [View platform compatibility details](/forms/compatibility)
* [Configure your form settings](/forms/lead-intake)
* [Set up Share Links](/forms/share-links) for social media
* [Customize your branding](/settings/branding)
# Lead Intake Form
Source: https://docs.flashquotes.com/forms/lead-intake
Configure and optimize your lead capture form
## Overview
The Lead Intake Form is optimized for high conversion rates, collecting only essential information needed to generate accurate quotes. This form automatically generates when you create your account and can be embedded on your website.
## Form Editor
The form editor displays all questions in the left panel, organized by page. Click any question to select it and view its settings in the right panel.
Click **Add question** below any page to open the question picker:
**Connected Questions** sync data to Flashquotes fields:
* **SMS Opt-in** - Capture text message consent
* **Lead Source** - Track how leads found you (pre-populated options)
* **Add-ons** - Let leads select from your add-ons list
* **Services** - Let leads choose from your services
* **Event Type** - Let leads pick the type of event (wedding, corporate, festival, etc.) — configurable options that surface on the quote and event details, and that can drive [event-type pricing](/services/pricing#dynamic-pricing) on the Scale plan
**Custom Questions** collect any information you need:
* **Text** - Short answer input
* **Multiple Choice** - Single selection from options
* **Multi-Select** - Multiple selections allowed
* **Dropdown** - Single selection from a dropdown menu
Connected questions already exist in your form? They'll appear greyed out with a checkmark.
Drag questions to reorder them within a page or move them to a different page:
1. Click and hold any question in the left panel
2. Drag to the desired position
3. Release to drop
Moving questions between pages works the same way—just drag to the target page.
**Adding pages:** Click the **+** button in the Pages header to add a new page.
**Deleting pages:** Empty pages show a kebab menu (⋮) with a delete option. Pages with questions cannot be deleted until all questions are removed or moved.
**Hiding pages:** Pages containing Add-ons or Services questions can be hidden via their kebab menu. Hidden pages won't appear to customers but retain their configuration.
Non-system questions can be deleted via the kebab menu (⋮) on each question row. System-required questions (like contact fields) cannot be removed.
## Form Structure
The default lead intake form includes these pages (fully customizable):
1. **Service Details**
* Service length (configurable min/max hours)
* Guest count (with customizable increment buttons)
* Dynamic staff calculation (optional visual counter or text display)
2. **Location**
* Event address
* Venue details
3. **Timing**
* Event date
* Service start time
* Number of event days
4. **Event Type**
* Category selection
* Pricing impact factors
5. **Customization**
* Add-ons selection
* Service add-ons with drag-and-drop reordering
* Special requirements
6. **Additional Information**
* Event details
* Referral source
7. **Contact Details**
* First name, last name, email, phone
* SMS opt-in consent (if enabled)
Customize form behavior:
* Set redirect URLs post-submission
* Configure submission messages
* Configure Instant Pricing and Quoting modes
If no redirect URL is specified and Instant Quoting is disabled, the form displays a default submission message.
Control which questions are mandatory for form submission. Select a question and use the required toggle in the settings panel.
**System-Required Questions:**
* Some questions are required by Flashquotes and cannot be changed
* These show "This question is required by Flashquotes" instead of a toggle
**User-Required Questions:**
* You can mark custom questions as required or optional
* Required questions must be completed before form submission
Making too many questions required can reduce conversion rates. Only require fields essential for accurate quotes.
The CTA buttons on the first and last pages of your form are editable directly in the form editor preview.
1. Hover the button in the preview — a ring appears around it
2. Click the button to make it editable
3. Type your new label, then press **Enter** or click outside to save
**Which buttons you can edit:**
* **First-page button** — shown on the first page of the form. Defaults to **"Get Custom Pricing"** (or **"Get My Instant Quote"** when Instant Quoting is enabled)
* **Last-page button** — shown on the final page. Defaults to **"Get My Quote"** (or **"Get My Instant Quote"** when Instant Quoting is enabled)
Leave either label blank to restore the default. Labels are capped at 100 characters.
Middle pages show a plain **Next** button that isn't customizable.
Add SMS opt-in to collect text message consent:
1. Click **Add question** on any page
2. Select **SMS Opt-in** from Connected Questions
3. The question is automatically placed on the Contact Details page
When enabled, leads see a checkbox asking "Can we text you?" and opted-in contacts display an SMS badge on the Contacts page.
SMS opt-in requires a phone number field on your form.
[Learn more about SMS opt-in →](/forms/sms-opt-in)
Automatically pre-build draft quotes from every new contact:
1. Set up your default service with pricing
2. Configure the service in your form's Default Service dropdown
3. Every form submission creates a draft quote ready to review and send
[Set up AutoDraft →](/contacts/autodraft)
Enable automatic quote generation and presentation:
1. Click the "Pricing settings" button in your form editor
2. Toggle "Quoting Mode" to "Instant Quoting"
3. Configure fallback service and pricing rules
**How pricing works:**
* **With service selection questions**: Uses the service the customer selects
* **Without service selection questions**: Uses the fallback service (fixed pricing)
* **No service selected**: Falls back to the configured default service
When enabled:
* Quotes are generated instantly upon form submission
* Clients are redirected to the quote presentation page
* "Book Now" option is immediately available
Instant Quoting is a [Pro plan](https://app.flashquotes.com/settings/plans) feature that enables clients to inquire, receive quotes, and book in a single session.
Combine Instant Quoting with your [quote template](/contacts/quote-view) for the ultimate conversion-optimized quote experience.
Control how add-ons and services appear to your customers:
**Service Visibility:**
* Each service has a toggle switch to show or hide it from the form
* Hidden services won't appear to customers on the public form
* Hidden services remain available for quotes you build manually
* Toggle visibility from the Services question settings in the form builder
**Drag-and-Drop Reordering:**
* Drag items up or down in the form builder to set display order
* The order you set affects how items appear to customers
* Most important items should be positioned at the top
**Default Ordering:**
* Items without custom ordering display alphabetically
* Mix of ordered and unordered items shows ordered items first
Position your most popular or profitable add-ons at the top to increase selection rates. Hide seasonal or inactive services to keep your form clean.
Sections organize your Services question into named, collapsible groups. Available when your company has 4+ services — configured per form.
**Set up sections:**
1. Open your form in the editor and select the **Services** question.
2. Click **Add section** in the settings panel. Flashquotes creates two sections ("Section A" and "Section B") so you can see them immediately.
3. Click a section name to rename it inline (e.g. "Bar service").
4. Drag any service into the section it belongs in. Drag a section header to reorder whole sections.
5. Click **Add section** again to add more groups.
To remove a section, click its **✕**. Its services merge into a neighboring section. Deleting down to one section removes all sections — sections are all-or-nothing.
Hiding a service (toggling it off) moves it to an **Excluded services** list below the card. It won't appear on the form until you turn it back on.
**What leads see:** sections appear collapsed with a service count and an arrow. The first section is expanded by default. Leads tap a header to expand it.
Customize how the staffing calculator appears and functions on your lead intake form:
**Service Length Settings:**
* Set minimum service hours (default: 1 hour)
* Set maximum service hours (default: 12 hours)
* Supports half-hour increments
**Guest Count Settings:**
* Configure guest count increment (1-100, default: 25)
* Controls how much the +/- buttons change the guest count
* Example: Set to 10 for smaller events, or 50 for large gatherings
**Staffing Calculations:**
* Define drinks/services per hour per staff member
* Set optional maximum staff limit
* Leave max staff empty for unlimited scaling based on guest count
**Staff Visual Counter:**
* Select the Staffing Calculator question under **Content**, then expand the **Staff visual counter** section in the settings panel
* Turn on the **Enable visual counter** toggle to show interactive staff images that adjust with guest count
* Customize staff titles (singular/plural) and a staff description
* Click any of the five **Staff Images** slots to upload photos of your team (optional)
* Turn the toggle off for a cleaner, text-only display — customize the question title and subtitle instead
The visual staff counter provides an engaging way for customers to see how many team members will serve their event, building trust and justifying pricing.
## Custom Themes
The theme designer lets you match your lead intake form to your brand — no code required. Click the **Design** (palette) button in the top-right of the form editor to set colors, fonts, and styling, with a live preview as you make changes.
* **Brand colors** — set your background, accent and text colors so the form looks like the rest of your site
* **Fonts** — choose the typeface used across questions, labels, and buttons
* **Corners** - sharpen or soften corners on buttons, cards and the entire form to match your style
* **Contrast-detection** - we automatically check for color pairs that will make your form less readable, suggesting better options for you
* **Live preview** — every change renders instantly in the form preview
* **Applies everywhere** — your theme carries across both embedded forms and [hosted share-link pages](/forms/share-links)
* **Copy from another form** — use the **Copy from** menu in the Design panel header to reuse a theme you've already built on another form
* **Reset theme** — click **Reset theme** in the Basics header to restore the Flashquotes default, seeded from your company brand color
Pull your colors and fonts straight from your website's brand guide so the embedded form feels like a native part of your page.
## Website Integration
To embed the lead intake form:
1. Click the **Share** button
2. Click **Get the code to embed it in your website**
3. Select your website builder (or **General Embeds** for any site)
4. Copy and paste the code into your website
New to embedding? See our [step-by-step embedding guide](/forms/embed-your-form) to get started quickly.
Wix websites require specific embedding code. Select **Wix** from the dropdown for correct code. For mobile optimization, see our [Wix Embed Best Practices](/forms/wix-embeds) guide.
Share your form without embedding it on your website:
1. Navigate to the **Share** tab in your form editor
2. Customize your landing page headline and subheadline
3. Copy your share link or use the QR code for offline materials
4. Share via social media, email, or SMS
**Perfect for:**
* Instagram link-in-bio (since Instagram doesn't allow clickable post links)
* Social media campaigns
* Print materials with QR codes
* Quick client sharing via text or email
Share links create a professional Flashquotes-hosted page that matches your branding and includes SEO optimization.
## Best Practices
1. Keep questions minimal
2. Test form on mobile devices
3. Set appropriate redirect URLs
4. Configure Instant Quoting carefully
5. Monitor conversion rates
6. Review form analytics regularly
## Next Steps
After setting up your lead form:
* [Configure booking form](/forms/booking)
* [Set up share links](/forms/share-links) for social media and Instagram
* [Set up Instant Pricing](/contacts/instant-pricing)
* [Check platform compatibility](/forms/compatibility)
* [Monitor contacts](/contacts)
* Track conversion rates
* Optimize form performance
# Real-Time Availability
Source: https://docs.flashquotes.com/forms/real-time-availability
Learn how the real-time availability feature helps customers understand your booking status
## Overview
The Real-Time Availability feature provides instant feedback to potential customers about your availability for their desired event dates. This helps set expectations early in the inquiry process and saves you time by reducing requests for dates when you're already fully booked.
## How It Works
When browsing dates on your form, customers will see visual indicators of your availability:
* **Available dates**: Dates when you have capacity for new bookings
* **Limited availability**: Dates when you're approaching capacity or have blocked dates
After selecting a date, customers see clear availability messages:
Even when dates show limited availability, customers can still submit requests, but they'll do so understanding they might need flexibility.
## Availability Factors
If you've marked a date as blocked, it will automatically show as unavailable to customers.
Use blocked dates for:
* Company holidays
* Days you know you can't service events
* Maintenance periods
* Personal time off
To manage blocked dates, use the [Calendar](/calendar) feature to mark dates as unavailable.
The system determines availability by analyzing:
* How many total resources you have available
* How many resources are already committed to other events on that date
**Example scenarios:**
* If you have 4 carts total, and 2 are already booked for a date, that date will show as available (green)
* If all 4 carts are booked, the date will show as limited availability (yellow)
You can adjust your resource capacity in the [Resources](/resources) section to ensure your availability is accurately displayed.
If your business operates in multiple locations:
* You can set different resources for each location
* Availability will display based on the specific location's capacity
* Customers will see availability specific to their selected location
Make sure to properly assign resources to each location in your [Settings](/settings) to ensure accurate availability display.
## Setting Up For Success
Make sure your total available resources reflect your actual capacity. If you hire more staff or add equipment, update your [resources](/resources) accordingly.
Keep your calendar up-to-date by:
* Blocking off dates when you know you won't be available
* Ensuring events have the correct number of resources assigned
* Regularly reviewing your upcoming bookings
Periodically check how your availability appears to customers:
* Test your form to see availability displays
* Verify blocked dates are showing correctly
* Ensure resource allocations are accurate
## Business Benefits
The Real-Time Availability feature provides several advantages:
* **Time savings:** Reduce time spent responding to requests for dates when you're fully booked
* **Expectation management:** Set clear expectations with potential customers from the start
* **Resource optimization:** Better manage your resource allocation across events
* **Improved visibility:** Maintain an accurate, real-time view of your availability
## Related Features
* [Lead Intake Form](/forms/lead-intake)
* [Calendar Management](/calendar)
* [Resource Management](/resources)
* [Booking Management](/bookings)
# Share Links & Hosted Forms
Source: https://docs.flashquotes.com/forms/share-links
Create professional Flashquotes-hosted pages perfect for social media, Instagram, and direct sharing
## Overview
Share links create professional Flashquotes-hosted pages for your forms. No embedding required - just share the link anywhere your customers are.
Perfect for Instagram link-in-bio since Instagram doesn't allow clickable links in posts.
## Creating a Share Link
1. Go to **Forms** and select your form
2. Click the **Share** tab
3. Customize your landing page settings
4. Copy your share link or QR code
Your form is now live at a `/f/{slug}` URL ready to share.
## Customization Options
### Landing Page Content
**Headline**: The main title visitors see when they arrive
* Keep it benefit-focused ("Get Your Custom Quote")
* Under 60 characters for best display
**Subheadline**: Supporting text under your headline
* Explain what happens next
* Build trust and set expectations
* Example: "Tell us about your event and we'll send you a personalized quote within 24 hours"
### Company Branding
Your hosted page automatically includes:
* Company logo and brand colors
* Professional Flashquotes styling
* Mobile-optimized design
* Fast loading times
## Social Media Sharing
Built-in sharing buttons for:
* **Twitter/X**: Pre-populated tweet with your link
* **Facebook**: Direct share to timeline or business page
* **Instagram**: Copy link for bio or story links
* **SMS**: Send link via text message
* **Email**: Create email with link included
## Instagram Link-in-Bio
Instagram users can only include one clickable link in their bio. Use your share link to:
1. Add your Flashquotes link to your Instagram bio
2. Post about your services with "Link in bio for quotes"
3. Drive followers directly to your quote form
4. Convert Instagram engagement into bookings
Update your Instagram bio text to include a call-to-action like "Get your event quote ↗️" to draw attention to the link.
## QR Code Generation
Every share link includes a QR code for offline marketing:
1. Click **Download QR Code** in the Share tab
2. Add to business cards, flyers, or signage
3. Customers scan to access your quote form instantly
**QR Code Uses:**
* Business cards and brochures
* Event booth displays
* Vehicle decals
* Print advertisements
## Embedded vs Hosted Forms
| Feature | Embedded Forms | Share Links |
| -------------------- | ------------------------ | ------------------------------ |
| Setup Time | Requires website editing | Instant - just copy link |
| Best For | Your own website | Social media, direct sharing |
| Customization | Limited by your site | Full control over landing page |
| Mobile Experience | Depends on your site | Optimized for mobile |
| Instagram Compatible | No | Yes - perfect for link-in-bio |
| QR Codes | Not practical | Built-in QR generation |
## SEO & Meta Tags
Share links include automatic SEO optimization:
* Proper page titles and descriptions
* Social media preview cards
* Mobile-friendly meta tags
* Fast loading for better search ranking
When shared on social platforms, your link displays with:
* Your company name and logo
* Custom headline as the preview title
* Professional preview image
## Preview Functionality
Test your hosted page before sharing:
1. Click **Preview** in the Share tab
2. View how your page appears on desktop and mobile
3. Test the form submission process
4. Make adjustments to headlines or settings
5. Publish when satisfied
## Common Use Cases
**Instagram Business**: Share link in bio, reference in posts and stories
**Wedding Vendors**: Include QR codes on vendor fair displays and business cards
**Food Trucks**: QR codes on vehicle signage for instant quote requests
**Event Planners**: Send direct links to potential clients via email or text
**Corporate Services**: Professional sharing for B2B quote requests
## Best Practices
1. **Keep headlines clear**: Focus on the benefit customers receive
2. **Test on mobile**: Most social traffic comes from mobile devices
3. **Update regularly**: Refresh headlines to match current promotions
4. **Use QR codes strategically**: Place them where customers have time to scan
## Next Steps
After setting up your share link:
* Add it to your Instagram bio
* Include QR codes in marketing materials
* Share on social media platforms
* [Track your pipeline](/pipeline) to monitor conversions
* [Configure Instant Quoting](/forms/lead-intake#instant-quoting) for faster conversions
# SMS Opt-in Collection
Source: https://docs.flashquotes.com/forms/sms-opt-in
Configure SMS consent collection in your lead intake forms
## Overview
Many CRMs and SMS automation tools require explicit consent before sending text messages. Flashquotes helps you capture that consent during lead intake, keeping you compliant while expanding your communication channels.
## Setup
1. Open your lead intake form editor
2. Click **Add question** on any page
3. Select **SMS Opt-in** from Connected Questions
The question is automatically placed on the Contact Details page (the page with your phone number field). A checkbox appears asking "Can we text you?" with customizable consent language.
SMS opt-in requires a phone number field on your form. If you don't have one, the question will be added to your selected page instead.
## Customization
Select the SMS Opt-in question to customize:
* **Question title** - Change "Can we text you?" to match your brand voice
* **Consent text** - Update the acknowledgement checkbox text for compliance
## Contact Management
Contacts who opt in display a green "SMS" badge next to their phone number. This makes it easy to identify contacts who can receive text messages.
## Removing SMS Opt-in
To remove SMS opt-in from your form, click the kebab menu (⋮) on the SMS Opt-in question and select **Delete**.
# Wix Embed Best Practices
Source: https://docs.flashquotes.com/forms/wix-embeds
How to successfully embed Flashquotes forms on Wix websites, including mobile optimization and workarounds for platform limitations
## Overview
Wix has technical constraints that affect how embedded forms display, especially on mobile devices. This guide covers best practices for embedding Flashquotes forms on Wix sites and solutions to common issues.
Wix enforces a 320px width limit on mobile iframes and uses sandboxed rendering that can break responsive design. Test your embed on mobile before going live.
## Known Wix Limitations
### Mobile Display Issues
Wix's mobile rendering differs from other website builders:
* **320px width constraint**: All mobile content displays at 320px width regardless of device capabilities
* **Non-responsive preview**: Chrome Developer Tools cannot accurately preview Wix mobile layouts
* **Sandboxed iframes**: Wix wraps embeds in an additional iframe that prevents natural responsive behavior
* **Fixed height containers**: Dynamic height adjustments may not work as expected
### What This Means for Your Forms
* Multi-step forms may appear cramped on mobile
* Form fields might not scale properly
* Scrolling within the iframe may be required
* Dynamic height changes between form steps may not function
## Recommended Approach: Mobile Button Alternative
For the best user experience, use a hybrid approach:
### Desktop: Full Embed
Embed your Flashquotes form normally for desktop users where space isn't constrained.
### Mobile: Link to Hosted Form
Replace the iframe with a button that links to your form's Share Link.
**Implementation steps:**
1. Generate a [Share Link](/forms/share-links) in your Flashquotes dashboard
2. In Wix's mobile editor, [hide the HTML iframe element](https://support.wix.com/en/article/wix-mobile-apps-showing-or-hiding-elements-on-different-mobile-operating-systems)
3. Add a button with text like "Get Custom Pricing" or "Request Quote"
4. Link the button to your Share Link URL
This ensures mobile users get the full, responsive form experience without Wix's constraints.
**Additional Wix resources:**
* [Making your Wix site mobile friendly](https://www.wix.com/blog/how-to-make-website-mobile-friendly)
* [Wix's guidance on mobile embeds](https://support.wix.com/en/article/wix-editor-adding-embeds-and-custom-elements-to-your-mobile-site) (recommends hiding iframes on mobile)
**Video tutorial: How to fix iframes on Wix mobile**
## If You Choose to Embed on Mobile
If you prefer to keep the iframe embed on mobile, follow these optimization steps:
* Ensure the embed code is wrapped in a div with at least 320px width and 650px height
* Test the embed on actual mobile devices, not just Wix's mobile preview
## Google Analytics and Ad Tracking
Wix's sandboxed iframe also prevents your embedded form from reading the visitor's original traffic source, so Google Analytics records form events as `direct` instead of the campaign or Google Ads click that drove the visit. If you track conversions with Google Analytics, add the Flashquotes attribution script to your Wix header.
Add one script to your Wix site's header so form events are attributed to the right source instead of `direct`.
## Next Steps
After setting up your Wix embed:
* [Configure form settings](/forms/lead-intake)
* [Create Share Links](/forms/share-links) for mobile users
* [Test platform compatibility](/forms/compatibility)
* Monitor form submissions in [Contacts](/contacts)
# Export Bookings to CSV
Source: https://docs.flashquotes.com/imports-exports/export-bookings
Export confirmed booking data with event details, client information, and revenue metrics
## Overview
Export your confirmed bookings to CSV format for financial reporting, client management, and operational planning. The export includes comprehensive booking information including event details, client contact data, service selections, and revenue metrics.
## How to Export Bookings
Go to the [Bookings](https://app.flashquotes.com/bookings) page in your Flashquotes dashboard.
Click the **Export to CSV** button in the top toolbar.
Your browser will automatically download a CSV file containing your bookings with all their associated data.
## What's Included
The booking export includes the following columns:
* Booking ID
* Booking Date
* Created At
* Booking Status (Active or Cancelled)
* Cancelled Date
* Event Count
* First Service Date
* Last Service Date
* Location(s)
* Client Name
* Client Email
* Company Name
* Lead Source
* Total Price
* Payment Method
* Payment Status (Paid, Partial, or Unpaid)
* Invoice Status
## Common Use Cases
### Financial Reporting
Import booking data into accounting software or spreadsheets to:
* Generate revenue reports by period
* Track deposit collection rates
* Analyze revenue by location or lead source
* Forecast cash flow
### Operational Planning
Use exports for logistics and scheduling:
* Create staff assignment schedules
* Plan equipment allocation
* Track venue utilization
* Manage inventory needs
### Client Relationship Management
Export booking history to:
* Maintain client records in external CRM systems
* Track repeat customer patterns
* Identify upsell opportunities
* Generate anniversary reminders
## File Format
The CSV file follows RFC 4180 standards:
* UTF-8 encoding
* Comma-separated values
* Double-quoted text fields
* Header row with column names
* Compatible with Excel, Google Sheets, and all major data tools
## Troubleshooting
Ensure you have the appropriate permissions. Booking exports require Admin or Member role access.
If special characters appear incorrectly:
1. Open Excel first
2. Use Data → Import from Text/CSV
3. Select UTF-8 encoding
4. Choose comma as delimiter
Check your active filters - the export respects all current filters including:
* Date range
* Booking status
* Location
## Related Articles
* [Imports & Exports Overview](/imports-exports/overview)
* [Export Contacts](/imports-exports/export-contacts)
* [Managing Bookings](/bookings)
# Export Contacts to CSV
Source: https://docs.flashquotes.com/imports-exports/export-contacts
Export your contact data for marketing automation, analytics, and Google Ads conversion tracking
## Overview
Export your contact data to CSV format for use with email marketing platforms, Google Ads conversion tracking, business analytics tools, and more. The CSV export includes comprehensive contact information and calculated metrics to help you analyze and act on your sales pipeline.
## How to Export Contacts
Go to the [Contacts](https://app.flashquotes.com/contacts) page in your Flashquotes dashboard.
Click the **Export CSV** button in the top toolbar. The button appears next to the filters.
Your browser will automatically download a CSV file containing your contacts (maximum 1,000 records) with all their associated data.
## What's Included
The contact export includes the following columns:
* First Name
* Last Name
* Company Name
* Email
* Phone
* Lead Source
* SMS Opt-In
* Open Inquiries (quotes not yet sent)
* Open Quotes (quotes sent but not booked or expired)
* Event Date(s) (date range from open quotes)
* Event Value (price range from open quotes)
## Common Use Cases
### Email Marketing Integration
Upload your contact export to email platforms like Mailchimp, Klaviyo, or HubSpot to:
* Create targeted campaigns for unconverted contacts
* Send follow-up sequences based on quote status
* Segment by event date or lead source
### Google Ads Conversion Tracking
Use the export to optimize your ad campaigns:
* Upload converted contacts as conversions in Google Ads
* Create lookalike audiences from booked customers
* Exclude existing contacts from prospecting campaigns
### Business Analytics
Import data into Excel, Google Sheets, or BI tools to:
* Analyze conversion rates by source
* Track seasonal trends
* Measure sales team performance
* Forecast future bookings
## Export Limits
Exports are limited to 1,000 contacts per export to ensure optimal performance. For larger datasets, consider:
* Filtering by date range before exporting
* Exporting in batches
* Using the API for programmatic access (Scale plan)
## File Format
The CSV file follows RFC 4180 standards:
* UTF-8 encoding
* Comma-separated values
* Double-quoted text fields
* Header row with column names
* Compatible with Excel, Google Sheets, and all major data tools
## Troubleshooting
Ensure you have the appropriate permissions. Contact exports require Admin or Member role access.
If special characters appear incorrectly:
1. Open Excel first
2. Use Data → Import from Text/CSV
3. Select UTF-8 encoding
4. Choose comma as delimiter
Check your active filters - the export respects all current filters including:
* Date range
* Contact status
* Assigned user
* Search terms
## Related Articles
* [Imports & Exports Overview](/imports-exports/overview)
* [Export Bookings](/imports-exports/export-bookings)
* [Contacts](/contacts)
* [Workflow Automation](/workflows/overview)
# Import Bookings from CSV
Source: https://docs.flashquotes.com/imports-exports/import-bookings
Bulk import up to 100 bookings at once using a CSV template
## Overview
Import multiple bookings at once when migrating from another system or adding historical data. You can import up to 100 bookings per file.
## How to Import Bookings
Go to [Bookings](https://app.flashquotes.com/bookings) and click **Import from CSV**. Download the template with example rows.
Add your bookings to the template. Each row is one booking. Keep the header row unchanged.
Upload your CSV. The system will show a preview. Map any columns that don't match automatically.
Fix any errors shown in red before importing. Common issues are date/time formats and missing required fields.
Click **Import**. The process runs in the background, processing 5 bookings at a time.
## What Happens After Import
* You'll see a results page with success/failure counts
* Successfully imported bookings appear in your bookings list
* Timeline entries are created automatically
* Event brief tasks trigger if configured
* No email notifications or webhooks are sent (to prevent duplicates)
## Required Fields
All bookings must include:
* Entity to Invoice
* Full Name
* Payment Method
* Total Price (Dollars)
* Event Date (YYYY-MM-DD format)
* Start Time (h:mm a format, e.g., 10:00 AM)
* End Time
* Number of Days (integer)
* Guest Count
* Event Address
* Staff Number
* Resource Number
* Location Name
* Location ID
## Optional Fields
Include these if you have the data:
* Email
* Phone
* Event Description
* Site Contact Name
* Site Contact Phone
* Additional Location Info
* Parking Info
* Staff Dress Code
* Special Instructions
## Format Requirements
* Dates: YYYY-MM-DD (e.g., 2025-02-15)
* Times: h:mm a with space (e.g., 10:00 AM, 2:00 PM)
* Must use uppercase AM/PM with space before
* Number of Days: Whole number (e.g., 1, 2, 3)
* Guest Count: Whole number
* Staff Number: Whole number
* Resource Number: Whole number
* Total Price: Number format (e.g., 1500 for \$1,500.00)
* Location ID is required and must match an existing location in your account
* Location Name should match the ID's location
* Event Address can be different from the location address
## Common Validation Errors
Dates must be YYYY-MM-DD format. 02/15/2025 won't work. Use 2025-02-15 instead.
Times need space before AM/PM. Use "10:00 AM" not "10:00AM". Must be lowercase h:mm a format.
Number of Days, Guest Count, Staff Number, and Resource Number must be whole numbers. No decimals.
Location ID is required and must match an existing location in Settings → Locations. Check your location IDs before importing.
Total Price must be a number. Use 1500 for \$1,500.00. Don't include dollar signs or commas.
## Import Limits
Maximum 100 bookings per import. For larger datasets, split into multiple files and import in batches.
## Related Articles
* [Imports & Exports Overview](/imports-exports/overview)
* [Export Bookings](/imports-exports/export-bookings)
* [Managing Bookings](/bookings)
# Imports & Exports
Source: https://docs.flashquotes.com/imports-exports/overview
Learn how to easily import and export your data in Flashquotes
## Overview
Move data in and out of flashquotes seamlessly. Import bookings from other systems or export your contacts, bookings, invoices, and payments for analysis, accounting, and business intelligence.
## Import Your Data
Bulk import up to 100 bookings at once using CSV format
## Export Your Data
Export contact data to CSV for marketing automation, analytics, and conversion tracking
Export confirmed bookings with event details, client information, and revenue data
Export invoices to CSV with configurable columns — respects your active filters
Export payment records to CSV for accounting reconciliation and reporting
## Common Use Cases
### Marketing & Sales
* Create targeted email campaigns from exported contact lists
* Upload converted contacts to Google Ads for conversion tracking
* Build lookalike audiences from your best customers
* Segment contacts by event date, lead source, or quote status
### Business Intelligence
* Analyze conversion rates and sales performance in Excel or BI tools
* Track seasonal trends and forecast future bookings
* Measure ROI across marketing channels
* Generate custom reports for stakeholders
### System Integration
* Export data to integrate with other business tools
* Maintain records across multiple platforms
* Create backups of your critical business data
## File Format Standards
All exports use CSV format following RFC 4180 standards:
* UTF-8 encoding for international character support
* Comma-separated values
* Double-quoted text fields
* Header row with descriptive column names
* Compatible with Excel, Google Sheets, and all major data tools
## Getting Help
Common issues and solutions for exports
Get help from our team with data export questions
# Inbox
Source: https://docs.flashquotes.com/inbox
Manage all your contact communications in one unified inbox
## Overview
The Inbox feature provides a centralized view of all your Gmail messages related to contacts, allowing you to manage customer communications without leaving Flashquotes. Emails are synced from your connected Gmail accounts and organized into threads for easy navigation.
The Inbox feature requires a [Plus or Pro subscription](https://flashquotes.com/pricing) and a connected Gmail account with appropriate permissions.
## Key Features
### Thread-Based Organization
Emails are automatically grouped into conversation threads, showing:
* **Subject line** from the most recent message
* **Participants** in the conversation
* **Message count** for each thread
* **Preview snippet** from the latest email
* **Timestamp** of the most recent message
* **Unread status** indicator
### Contact Integration
Each email thread displays associated contact information:
* **Contact name** and company
* **Quick access** to contact details via hover card
* **Direct link** to full contact profile
### Multi-Account Support
If you have multiple Gmail accounts connected:
* **Filter by account** to see emails from specific inboxes
* **Account indicator** shows which Gmail account received each email
* **Seamless switching** between different email accounts
### Mark as Done
Keep your inbox clean and organized:
* **One-click action** to remove emails from your inbox
* **Syncs to Gmail** - removes the INBOX label from the message
* **Reversible** - emails remain in Gmail and can be found via search
### Real-Time Sync
Your inbox stays current automatically:
* **Background sync** pulls new emails regularly
* **Label updates** sync bidirectionally with Gmail
* **Instant UI updates** when you mark emails as done
## Getting Started
### Prerequisites
1. **Subscription**: Plus or Pro plan
2. **Gmail Connection**: Connect your Gmail account in Settings → Integrations
### Accessing the Inbox
1. Navigate to **Inbox** from the main navigation menu
2. Your synced email threads will appear automatically
3. Use the account filter to switch between connected Gmail accounts
## Using the Inbox
### Viewing Email Threads
1. Threads are displayed in chronological order (most recent first)
2. Click on any thread to view the full conversation
3. Hover over the contact name to see contact details in a popup card
4. Click the contact name to navigate to the full contact profile
### Managing Your Inbox
**Mark as Done:**
1. Click the checkmark icon on any email thread
2. The thread immediately disappears from your inbox
3. The INBOX label is removed from the email in Gmail
4. The email remains searchable in Gmail
**Filter by Account:**
1. Click the account dropdown at the top of the inbox
2. Select a specific Gmail account to view only its emails
3. Select "All Accounts" to see emails from all connected accounts
## Understanding Email Sync
### What Gets Synced
The inbox syncs emails that:
* Are in your Gmail inbox
* Are associated with known contacts (matched by email address)
* Come from Gmail accounts you've connected to Flashquotes
### Email Matching
Emails are automatically matched to contacts when:
* The sender's email address matches a contact in your system
* The conversation includes emails from known contacts
## Tips and Best Practices
### Organize Your Workflow
* Use **Mark as Done** to create a zero-inbox workflow
* Handled threads disappear, keeping focus on what needs attention
* Emails remain in Gmail for reference and searching
### Multi-Account Management
* Connect multiple Gmail accounts if you use different addresses for different services
* Filter by account to focus on specific business lines
* All emails remain unified in one interface
### Contact Context
* Hover over contact names to quickly see quote history and booking status
* Click through to the contact profile for detailed conversations
* Use contact context to craft better follow-up responses
## Troubleshooting
### Emails Not Appearing
**Check these items:**
1. Gmail account is connected in Settings → Integrations
2. Emails are in your Gmail inbox
3. Sender email matches a contact in your system
### Mark as Done Not Working
**Possible causes:**
1. Missing Gmail permission - reconnect your Gmail account
2. Network connectivity issues - try refreshing the page
3. Gmail API rate limits - wait a few minutes and try again
### Sync Delays
**What to check:**
1. Background workers may take a few minutes to sync new emails
2. Large email volumes may take longer to process
3. Gmail API quotas may temporarily delay syncing
## Related Features
* [Gmail Integration](/settings/integrations/google-gmail-read) - Set up full Gmail sync
* [Workflows](/workflows/overview) - Automate follow-up emails
* [Contacts](/contacts) - View and manage everyone you've quoted or booked
# Introduction
Source: https://docs.flashquotes.com/introduction
Flashquotes helps event businesses manage their entire workflow - from lead capture through event delivery and payment. This documentation will help you get started and make the most of the platform.
## Quick Setup
Automatically pre-build draft quotes from your leads - just review and send
## Core Features
Track quotes through your pipeline, manage contacts, and convert prospects into bookings
Manage events, timelines, and event briefs for successful delivery
Configure lead intake and booking forms for your business
Manage your team and equipment effectively
Track performance with powerful reporting and visualizations
## Key Workflows
The complete sales process:
* [Inquiry capture](/contacts)
* [Quote creation](/contacts/quotes)
* [Quote delivery](/contacts/sending-quotes)
* [Booking confirmation](/bookings)
Successful event execution:
* [Event planning](/events)
* [Timeline management](/events/timeline)
* [Event briefs](/events/event-brief)
* [Staff coordination](/staff)
Make sure you get paid:
* [Invoice creation](/invoices)
* [Deposits and invoice payments via Stripe](/introduction#payment-processing)
* [QuickBooks sync](/settings/integrations/quickbooks)
All payment processing is handled securely through Stripe.
## Configuration
Configure your company information and core settings
Customize your forms and client-facing elements
Connect with QuickBooks, Zapier, and more
Configure service add-ons and pricing options
## Getting Started
1. Start with our [Quickstart guide](/quickstart)
2. [Share your lead intake form](/forms/share-links) or [embed it on your website](/forms/lead-intake)
3. Set up your [company branding](/settings/branding)
4. Add your [staff](/staff) and [resources](/resources)
## Need Help?
Contact our support team for assistance
Access our API documentation for custom integrations
# Invoices
Source: https://docs.flashquotes.com/invoices
Learn how to create, manage, and track invoices and payments in Flashquotes
## Overview
The Invoices section in Flashquotes provides comprehensive tools for managing your billing and payments. Integrated with Stripe, it offers features for creating invoices, processing payments, handling refunds, and generating financial reports.
## Dashboard Overview
The invoice dashboard displays:
* Total unpaid invoices
* Overdue invoices count
* Total payments received (last 30 days)
* Payment status summaries
Filter and search your invoices from the dashboard:
* **Status filters**: Select one or more statuses — Open, Pending, Paid, Overdue, or Voided
* **Due date range**: Narrow results to a specific date window
* **Full-text search**: Search across invoice details to find what you need fast
* **Sortable columns**: Click any column header to sort ascending or descending
Filters persist while you work, so you won't lose your view when switching between invoices.
Export your invoices list to a spreadsheet for reporting or reconciliation:
1. Apply any filters you want — only filtered results are exported
2. Click **Export CSV**
3. Choose which columns to include
4. Download and open in Excel, Google Sheets, or any spreadsheet tool
Filter by status or date range before exporting to get exactly the data you need.
## Invoice Management
### Creating and Editing Invoices
Customize invoices with:
* Entity information
* Email recipients
* Due dates
* Tax rates
* Purchase order numbers
* Customer notes
* Line item tax settings
* Custom pricing
* Discounts
Modify existing invoices by:
* Adding new services
* Adjusting quantities
* Updating pricing
* Including additional line items
Changes can be made even after the initial booking is confirmed.
Attach an existing discount to any single line item from the line-item editor's **Discount** picker, or select **+ New discount** to create one inline (it auto-applies). Use **Manage discounts** to jump to Settings → Discounts.
* Line-item discounts apply **before** any order-level discount and floor at \$0.
* Gratuity is never discounted.
* Discounted amounts flow through totals, taxes, and QuickBooks sync — QuickBooks invoice lines receive the discounted amount so totals reconcile.
* Customers see the original price with a strikethrough next to the discounted "now" price and the discount name on the booking summary, quote view, payment page, and both PDFs.
See [Per-line-item discounts](/contacts/quotes#per-line-item-discounts) for the full walkthrough.
### Invoice Reminders
Flashquotes offers tools to remind customers about their outstanding invoices:
* Automatic email reminders on a predefined schedule
* Manual one-off reminder emails
* Customer payment links accessible from confirmation pages
For detailed information on setting up and using invoice reminders, see the
[Invoice Reminders](/invoices/reminders) page.
## Payment Processing
### Payment Breakdown
The invoice view displays a detailed breakdown of all payments made toward the invoice:
* **Payment history**: Each payment shows the date, method, and amount paid
* **Card details**: Stripe payments display the card brand and last 4 digits (e.g., Visa •••• 4242)
* **Payment status**: Clearly distinguishes between pending and completed payments
* **Receipt links**: Payments made through Stripe include a clickable receipt link — click the payment amount to view the Stripe receipt
* **Refunds**: Refunded amounts appear in the breakdown with negative values
The payment breakdown is also included when customers download or print the invoice PDF, making it easy for them to maintain records.
### Payment Options
Accept payments through:
* Stripe Link (one-click payments)
* Credit/debit cards
* Stripe Bank Transfer
* Manual payment recording
* Scheduled payments
Bank transfers do not settle immediately and show pending status while processing
Record payments received through:
* Check
* Bank transfer
* Cash
* Other
You can add a partial invoice payment by clicking the `Add Installment` button in the invoice *Payment Schedule* table. The table shows all existing payments alongside future expected payments, including the remaining balance, so you always have a complete picture of the payment timeline.
Scheduled installments will then be available for customers to select and pay from the invoice payment page. If they'd rather, customers can opt to pay the remaining balance.
Use payment installments to easily allow customers to make partial payments on their invoices.
For comprehensive payment terms configuration including deposits, invoice due dates, and more, see our [Booking Flow guide](/contacts/booking-flow).
## Financial Reporting
### Tax Reports
For detailed tax reporting and analysis:
Go to **Reports → Sales tax** to see total sales, taxable amounts, and tax collected, broken down by tax rate. [Learn more about the Sales Tax report →](/reports/sales-tax)
### Performance Analytics
Track financial performance and customer behavior with the [Reports dashboard](/reports):
* **[Average Gratuity Analysis](/reports#average-gratuity)** - Understand tipping patterns and optimize gratuity settings
* **[Top Clients by Revenue](/reports#top-clients-by-revenue)** - Identify your most valuable customers
* View comprehensive revenue trends and business analytics
## Stripe Integration
* Process all transactions through Stripe
* Handle refunds within Flashquotes
* View payment history
* Access detailed transaction records
All financial transactions are processed through Stripe's secure platform.
## Invoice Sharing
### Distribution Options
1. Email directly through Flashquotes
2. Share invoice links
3. Generate PDF versions
4. Send payment reminders
## Best Practices
1. Regularly review overdue invoices
2. Set consistent payment terms
3. Keep tax settings updated
4. Monitor payment processing methods
5. Maintain accurate customer information
## Next Steps
After mastering invoices:
* [Configure forms](/forms)
* [Set up payment reminders](/invoices/reminders)
* Establish follow-up procedures
* Review financial reporting needs
# Processing Refunds
Source: https://docs.flashquotes.com/invoices/refunds
Learn how to issue full or partial refunds for customer payments in Flashquotes
## Overview
Sometimes you may need to refund a payment to a customer due to cancellations, service issues, or accounting adjustments. Flashquotes makes it easy to process refunds through its Stripe integration, providing multiple ways to access the refund functionality.
## Accessing Refund Options
Go to **Payments** in the sidebar.
Find and click on the specific payment you need to refund. This will
open a Stripe modal with complete payment details.
The payment list includes key information like payment date, amount,
and customer name to help you identify the correct transaction.
In the Stripe modal, locate and click the **Send Refund** button.
Choose between issuing a **full refund** or a **partial refund**. If
selecting a partial refund, enter the specific amount to refund.
Refunds can take 5-10 business days to appear in your customer's
account, depending on their payment method and banking institution.
Navigate to the **Invoices** section and locate the specific invoice
containing the payment you need to refund.
Click on the invoice to open its detail page.
Scroll down to the **Payment Activity** table section, which lists all
transactions associated with this invoice.
Find the payment you need to refund and click the **Show Details**
button next to it.
In the Stripe payment detail modal that appears, click the **Send
Refund** button and follow the prompts to complete the refund process.
You can include a note with the refund to document the reason, which
will be stored in your transaction history.
## Refund Types
A full refund returns the entire payment amount to the customer.
When you provide a refund to a customer in Stripe, the original processing fees are not reversed or returned
Partial refunds return only a portion of the original payment amount. To issue a partial refund, click the **Send Refund** button in the Stripe modal and edit the amount to refund.
You can issue multiple partial refunds up to the total amount of the
original payment.
## Refund Processing
Refunds are processed through Stripe, which may take 5-10 business days to
appear in your customer's account. See [Stripe's documentation](https://support.stripe.com/questions/where-is-my-customers-refund)
for more information on the refund process.
## Invoice Status After Refunds
When you refund the full net payment amount, the invoice status changes to "Refunded".
Refunded invoices:
* Don't count toward outstanding amounts
* Don't appear in overdue totals
* Keep your financial summaries accurate
Partial refunds don't change the invoice status. Only full net payment refunds mark an invoice as "Refunded".
## Related Resources
* [Invoice Management](/invoices)
* [Stripe Integration](/settings/integrations/quickbooks)
# Invoice Reminders
Source: https://docs.flashquotes.com/invoices/reminders
Learn how to set up and manage automated and manual invoice reminders in Flashquotes
## Overview
Invoice reminders help ensure timely payments from your clients. Flashquotes offers both automated reminder emails and manual reminder options, giving you flexibility in how you follow up on unpaid invoices.
## Customer Payment Access
Every invoice in Flashquotes includes a dedicated payment link that is available to customers on their confirmation page. This makes it easy for customers to access and pay their invoices at any time.
## Automated Reminder Emails
### Enabling Automated Reminders
To set up automated invoice reminders:
1. Navigate to **Settings** > **Invoices**
2. Find the **Automatic invoice reminders** toggle
3. Switch the toggle to **On**
Automated email reminders only apply to new invoices created after enabling
this feature. Turning off automatic reminders removes them from all invoices.
Automatic reminders are a company-wide setting — they can't be turned on or
off for an individual invoice.
### Default Reminder Schedule
When enabled, Flashquotes will automatically send reminder emails based on the following schedule:
| Reminder | Timing |
| ---------- | --------------------- |
| Reminder 1 | 1 day before due date |
| Reminder 2 | On the due date |
| Reminder 3 | 2 days after due date |
### Preview Reminder Emails
You can preview how each reminder email will appear to customers:
1. Navigate to **Settings** > **Invoices**
2. Find the reminder you want to review
3. Click the **Preview email** button
This allows you to ensure your automated reminders maintain the appropriate tone and messaging for your business.
## Manual Invoice Reminders
In addition to automated reminders, you can send one-off reminders for any invoice:
1. Go to the **Invoices** page in Flashquotes
2. Select the specific invoice you want to remind about
3. Click the **Send Invoice** button
4. A preview modal will appear showing the reminder email
5. Customize the email subject if needed
6. Click **Send** to deliver the reminder to your customer
Manual reminders are particularly useful for following up on overdue invoices
that require special attention, or for invoices created before you enabled
automated reminders.
## Best Practices
* **Enable automated reminders** for a consistent follow-up process
* **Review reminder preview emails** to ensure they match your company's tone
* **Use manual reminders** for special circumstances or older invoices
* **Monitor invoice status** regularly to identify any payment issues
* **Combine with clear payment terms** set in your initial invoice
## Next Steps
After setting up your invoice reminders:
* [Configure invoice payment methods](/invoices#payment-options)
* [Set up financial reporting](/invoices#financial-reporting)
* [Learn about handling refunds](/invoices/refunds)
# Voiding Invoices
Source: https://docs.flashquotes.com/invoices/voiding
Learn when and how to void an invoice to cancel it while maintaining records for accounting
## Overview
Voiding an invoice marks it as canceled while keeping it visible in your records. This preserves your audit trail for accounting purposes while ensuring the invoice is excluded from revenue statistics and reports.
Voided invoices remain searchable and visible in your invoice list, but display a "Void" status badge.
## Void vs. Delete
Choose the right action based on your situation:
| Action | Use When | Result |
| ---------- | ------------------------------------------------------- | -------------------------------------------------- |
| **Void** | You need to cancel an invoice but want to keep a record | Invoice shows "Void" status, stays in your records |
| **Delete** | The invoice was created by mistake and never sent | Invoice is permanently removed |
**Best practice**: If an invoice was sent to a customer or referenced anywhere, void it instead of deleting. This maintains a clear audit trail.
## Requirements for Voiding
Before you can void an invoice:
* **No payments recorded** - The invoice must have no payments against it
* **Not already voided** - You cannot void an invoice that's already voided
If an invoice has payments recorded, you'll need to delete or refund those payments first before voiding the invoice.
## How to Void an Invoice
Go to **Invoices** in your Flashquotes dashboard
Locate the invoice you want to void
Click the three-dot menu (⋮) on the invoice row
Click **"Void invoice"**
Confirm your action in the modal that appears
Click on an invoice to open its detail page
Click the dropdown menu in the invoice header
Click **"Void invoice"**
Confirm your action in the modal that appears
## What Happens After Voiding
When you void an invoice:
* **Status changes** - The invoice displays a "Void" status badge
* **Excluded from statistics** - The invoice amount is excluded from overdue totals, open amounts, and revenue reports
* **Remains visible** - The invoice stays in your invoice list and remains searchable
* **Reminders canceled** - Any scheduled payment reminders for this invoice are automatically stopped
**QuickBooks users**: Voiding an invoice in Flashquotes does not automatically void the corresponding invoice in QuickBooks. You'll need to void it separately in QuickBooks if needed.
## Can I Un-Void an Invoice?
No, voiding is permanent. Once an invoice is voided, it cannot be restored to its original state.
If you need to bill the customer again, create a new invoice with the same details.
## Related Resources
* [Invoice Management](/invoices)
* [Processing Refunds](/invoices/refunds)
* [Invoice Reminders](/invoices/reminders)
# Pipeline
Source: https://docs.flashquotes.com/pipeline
Track every open quote from new inquiry to booked in a visual pipeline
## Overview
The Pipeline is your working view of every open quote — organized into stages so you always know what needs attention next. Each card is a quote (a contact with multiple quotes appears once per quote), and cards move through the pipeline as you work them from new inquiry to booked.
The board shows open quotes from the last 90 days. A booking-rate chip in the header shows your conversion over the same window and links to [Reports](/reports) for the full breakdown.
Looking for people instead of quotes? Every client lives on the
[Contacts](/contacts) page — the Pipeline focuses on the quotes you're
working to get booked.
## Stages
Quotes move through four groups:
* **New inquiry** — quote requests that haven't been sent yet
* **Quote sent** — quotes delivered to the client, awaiting a decision
* **Booked** — quotes the client accepted
* **Lost** — quotes you've closed out
**New inquiry** and **Quote sent** appear as columns on the board. **Booked** and **Lost** are managed for you — quotes land there automatically when a client books or when you mark a quote as lost, and you can review them from the counters above the board (or on the [Bookings](/bookings) page).
Each column shows its card count and total quote value, so you can read the health of your pipeline at a glance.
### Moving quotes
Drag a card to move it between stages within the same group. Quotes advance between groups on their own — sending a quote moves it to **Quote sent**, and a booking moves it to **Booked** — so the board always reflects reality.
While dragging, a **Mark as lost** drop zone appears at the bottom of the screen. Drop a card there to close it out with an optional reason — **Price**, **Date unavailable**, **Went silent**, **Chose someone else**, or **Other**. Lost quotes are never deleted; find them anytime under the Lost filter.
### Custom stages
Click **Edit stages** to tailor the board to how you actually work — for example, splitting **Quote sent** into "In revision" and "Verbal yes."
* Add, rename, reorder, and delete stages within **New inquiry** and **Quote sent**
* Deleting a stage prompts you to pick a destination for its quotes
* **Booked** and **Lost** are managed for you and can't be customized
On the free plan, quotes stay organized in the default stages; you can rename them, but adding stages requires Plus.
## Quote cards
Each card surfaces what you need to decide your next move:
* **Contact name** and owner avatar (click the avatar to reassign)
* **Event summary** — event type and date
* **Quote total** — including service charges, discounts, and tax
* **Latest activity** — "Sent 3 days ago," "Emailed…" — the line turns amber, then red, as a quote sits idle so follow-ups don't slip
* **Engagement icons** — email opens, quote views, and Book Now clicks
* A 🔥 flame marks **hot quotes** — the client engaged in the last 24 hours, so strike while the interest is fresh
* An **Expired** badge when the quote has passed its expiration date
Use the menu on any card to send the quote, mark it as sent, open it, change the owner, move it to another stage, or mark it as lost — without leaving the board.
## Board and list views
Toggle between the kanban **Board** and a **List** view from the header — your choice is remembered. The list shows Contact, Event, Stage, Quote, Latest activity, Engagement, and Owner columns, which is handy for scanning a large pipeline or sorting by a single column.
## Sorting and filtering
Sort the pipeline by:
* **Needs attention** (default) — most urgent first
* **Event date** — soonest first
* **Quote value** — highest first
* **Created** — newest first
Filter by created date range, source, event type, location, or owner to narrow the board to exactly the quotes you're working.
## Creating quotes
Click **New quote** to start a quote from the Pipeline. Pick an existing contact or create a new one, then build the quote — nothing is saved until you finish, so you can back out cleanly. See [Creating Quotes](/contacts/quotes) for the full quoting guide.
## Next steps
* [Manage your contacts](/contacts)
* [Create quotes](/contacts/quotes)
* [Send quotes](/contacts/sending-quotes)
* [Track performance in Reports](/reports)
# Quickstart
Source: https://docs.flashquotes.com/quickstart
Get started with Flashquotes and set up your app for success.
## 💳 Stripe Setup
Flashquotes requires a connected Stripe account for handling payments and invoices.
1. Navigate to the [Settings](https://app.flashquotes.com/settings) page.
2. Under `General`, find the Payment Gateway section.
3. Click **Connect**.
4. Follow the instructions to connect your existing Stripe account or create a new one.
Once connected, you will see a green indicator confirming that Stripe is successfully linked.
***
## ⚙️ General Settings
Locations represent the headquarters or warehouse where your resources and team are based.
1. Go to [General Settings](https://app.flashquotes.com/settings).
2. Click the `+ Add location` button to add your locations.
3. Add as many locations as needed for your operation.
Locations will help in identifying which warehouse will be supporting an event, will be associated to your staff and resources, and can be used to build dynamic timelines so that your team always shows up on time.
In [General Settings](https://app.flashquotes.com/settings), configure default timelines for key event stages like "Loading time" and "Setup time."
These defaults are used to generate dynamic event timelines for all your events.
Have a one-off event that needs a different timeline? No worries - you can change the timeline for any specific event as needed.
Upload your logo and set a primary color in [Branding Settings](https://app.flashquotes.com/settings/branding).
* Your logo will appear on customer-facing pages like quotes and invoices.
* The primary color personalizes your app’s buttons and icons.
***
## 🚛 Resources
Add core resources like coffee carts, bar carts, vans, and trailers to link them to events in the app. This unlocks awesome features like real-time availability and insights into resource utilization.
Resources like coffee carts, bar carts, vans, or trailers can be added on the [Resources tab](https://app.flashquotes.com/services?tab=resources) under **Services & items**.
1. Click `+ Add Resource`.
2. Name and categorize the resource.
3. Assign it to a location and set its availability for events.
Missing a location when trying to add a resource? Just [add your locations](/quickstart#general-settings) and they’ll become available for resource assignment.
***
## 👥 Staff
By adding your staff, you enable these team members to be linked to events throughout the application and help avoid double booking your staff for upcoming events.
Add your team members in the [Staff](https://app.flashquotes.com/staff) section.
* Assign roles (e.g., "Barista") and locations.
* Ensure contact information is complete for easy event coordination.
Missing a location when trying to add staff? Just [add your
locations](/quickstart#general-settings) and they’ll become available for
staff assignment.
***
## 📋 Forms
Forms allow you to build custom and flexible experiences to collect important information from your customers. This is especially important when allowing your customers to book your services.
Configure the form used to collect customer information during the booking process.
1. Go to [Forms](https://app.flashquotes.com/forms).
2. Click on the auto-generated `New Booking Form`.
3. Update, add or delete form questions as needed.
Remember to **Publish** your form once it's ready.
Payment terms are configured directly on quotes in the Booking Flow section. See our [Booking Flow guide](/contacts/booking-flow).
Share your lead intake form on social media or embed it on your website to receive quote requests from new contacts.
1. Go to [Forms](https://app.flashquotes.com/forms).
2. Click on the auto-generated `New Lead Intake Form`.
3. Configure form questions and settings.
4. Choose how to share your form:
* **Share Link**: Click the `Publish` tab to create a shareable link perfect for Instagram link-in-bio
* **Embed on Website**: Click `Embed Form` to get the embed code for your website
5. Follow the instructions for your chosen method.
Remember to **Publish** your form once it's ready.
New to Flashquotes? Start with a [share link](/forms/share-links) - no website required! Perfect for Instagram and social media.
***
## ✅ Task Templates
Task templates are a powerful way to ensure your admin and event team are completing specific tasks for every event you book. This helps ensure your team doesn’t miss a beat in delivering a great event.
In [Task Settings](https://app.flashquotes.com/settings/tasks), you can setup your Admin Task Templates. These tasks will be added to the Overview section of each event and will be clearly presented in the [Events](https://app.flashquotes.com/events) section. You can also include a Default Due Date for each task, to ensure they’re completed timely.
Have an event that requires a unique task? Just add or edit admin tasks in the Overview section of the event.
In [Task Settings](https://app.flashquotes.com/settings/tasks), you can setup your Event Brief Task Templates. These tasks will be added to the Event brief section of each event and, most importantly, will be presented in the public event brief document to share with your event team.
Each task can be put in a specific order and assigned to a section of the event brief (e.g. “Prep & Loading” or “Service”). This way, your event team can reference the event brief throughout working the event to make sure all tasks are complete.
Have an event that requires a unique task? Just add or edit event brief tasks
in the Event brief section of your event.
Flashquotes uses a rich text editor (TipTap) for content formatting throughout the platform. This provides a user-friendly, visual editing experience similar to Google Docs or Microsoft Word.
Flashquotes does not support markdown syntax. Content is created and edited using the visual rich text editor interface.
## Available Formatting Options
The rich text editor provides standard formatting tools:
### Text Styling
* **Bold text** - Use the bold button in the toolbar
* *Italic text* - Use the italic button in the toolbar
* Underlined text - Use the underline button in the toolbar
### Lists and Structure
* Bulleted lists
* Numbered lists
* Headings (H1, H2, H3)
* Paragraphs with proper spacing
### Links and Media
* Hyperlinks - Select text and use the link button
* Email links
* Image insertion (where supported)
## Where You'll Use the Rich Text Editor
The rich text editor appears in several areas of Flashquotes:
* Quote descriptions and notes
* Email templates and content
* Form instructions and help text
* Invoice notes and terms
## Tips for Best Results
* Use the formatting toolbar buttons rather than trying to type markdown syntax
* Preview your content before saving to ensure it displays correctly
* Keep formatting simple and professional for customer-facing content
* Use headings to organize longer content sections
If you're familiar with markdown and prefer that workflow, the rich text editor may feel different initially. However, it provides better WYSIWYG editing for most users.
***
## ✨ Add-Ons
Use add-ons for all the extra services and customizations that your customers can add to their order beyond your basic service offering. These add-ons will be used throughout Flashquotes, including your quote line items, event details and event brief, invoice line items, etc.
On the [Add-ons tab](https://app.flashquotes.com/services?tab=addons) under **Services & items**, create add-on services that customers can add to their order.
1. Click `+ Create Add-On`.
2. Add a name, description, price type (e.g., "Flat Price", "Per Guest", or "Per Unit per Guest"), and price for each add-on.
The price types are especially helpful in auto-calculating the appropriate add-on price as you’re preparing quotes for your customers.
***
## 📨 Email accounts
Use our [Google Integration](/settings/integrations/google) to send emails to your customers from your own email address.
Go to [Integration Settings](https://app.flashquotes.com/settings/integrations) in Flashquotes and click **+ Add account** to get started.
***
## 🎯 Flashquotes AutoDraft
Save time with AutoDraft - automatically pre-build draft quotes from every new inquiry. [Set up AutoDraft →](/contacts/autodraft)
## 📬 Send Your First Quote
Let's walk through how to send a quote from Flashquotes
1. Go to the [Contacts](https://app.flashquotes.com/contacts) page.
2. Click on a contact or create one by clicking `New contact`.
1. From the [Pipeline](https://app.flashquotes.com/pipeline) page, click `New quote` to create a new quote.
2. Input the Address, Service Location, Date and Time and click `Create`.
3. You'll land on the quote editing screen. From here you can:
* add line items, discounts, and taxes
* add / edit details about the event service
* customize the look of the quote view
Learn how to [configure your quote template](/contacts/quote-view) for a modern, conversion-optimized experience that can boost your booking rates.
1. When you’re ready to send it, click `Send quote`. You’ll need to choose one of your booking forms to link to the *Book my event* button.
2. Click `Send`. An email version of the Quote will be sent to the contact with a link to instantly book.
3. Sit back and wait for the bookings to roll in!
***
## Questions?
Contact us at [support@flashquotes.com](mailto:support@flashquotes.com).
***
# Reports
Source: https://docs.flashquotes.com/reports
Analyze business performance with powerful reporting and visualization tools
## Overview
The Reports dashboard provides comprehensive analytics and insights into your business performance. Track revenue, monitor service utilization, analyze customer behavior, and identify trends to make data-driven decisions about your business.
## Accessing Reports
Navigate to **Reports** from the main navigation menu to access your analytics dashboard.
## Available Reports
### Service Asset Utilization
Monitor how efficiently your core service assets are being utilized over time. This visualization helps you:
* **Forecast busy periods**: Identify patterns in asset usage to predict peak demand
* **Optimize capacity**: Understand when you have available capacity for growth
* **Track quotes vs bookings**: See the relationship between quoted and confirmed events
**Key Metrics:**
* **Total Assets**: Number of core service resources in your inventory
* **Average Daily Use**: Mean number of assets in use per day
* **Busiest Day**: Peak utilization date in the selected period
The chart displays:
* **Booked Assets** (solid bars): Confirmed bookings
* **Quoted Assets** (dashed outline): Pending quotes
* **Max Capacity Line**: Your total available resources
Asset utilization is based on core service resources marked as "Affects Quote Availability" in your Resources settings.
### Average Gratuity
Analyze gratuity patterns and customer tipping behavior across your bookings. This report helps you:
* **Understand tipping trends**: See how customers respond to gratuity options
* **Optimize gratuity settings**: Adjust percentage options based on customer preferences
* **Track total tips**: Monitor gratuity revenue over time
**Key Metrics:**
* **Total Gratuity**: Combined gratuity amount from all bookings
* **Average Amount**: Mean gratuity per booking with tips
* **Participation Rate**: Percentage of customers choosing to add gratuity
The pie chart shows the distribution of gratuity percentages selected by customers, with darker colors representing higher tip percentages.
This report only includes gratuity selected through booking forms. Tips added directly to invoices or via service charges are tracked separately.
### Top Clients by Revenue
Identify your most valuable customers and understand revenue concentration. This report helps you:
* **Recognize VIP clients**: Focus retention efforts on high-value relationships
* **Analyze revenue distribution**: Understand customer concentration risk
* **Track client lifetime value**: Monitor revenue trends from repeat customers
**Key Metrics:**
* **Total Revenue**: Combined revenue from top 10 clients
* **Average per Client**: Mean revenue across displayed clients
* **Top Client Revenue**: Highest individual client contribution
The horizontal bar chart displays your top 10 clients ranked by total invoice amount, including all taxes, discounts, and service charges.
### Sales Tax
See total sales, taxable amounts, and tax collected per tax rate for any date range. [View the Sales Tax report guide →](/reports/sales-tax)
### Additional Metrics
The Reports page also displays essential business statistics:
* **Total Events**: Number of bookings in the period
* **Total Guests**: Combined guest count across all events
* **Event Duration**: Total hours of event time
* **Service Hours**: Customer-facing staff time
* **Shift Hours**: Total scheduled staff hours including setup/breakdown
* **Percent Paid**: Percentage of invoices fully paid
* **Period comparisons**: Trend indicators vs previous period
## Filtering Reports
All reports can be filtered to show specific data:
### Date Range
Select custom date ranges or use presets:
* Today
* Last 7 days
* Last 30 days
* Custom range
### Location Filter
For multi-location businesses, filter reports by:
* All locations (combined)
* Individual location
* Multiple selected locations
Use date range filters to compare seasonal trends, identify growth periods, and plan for future capacity needs.
## Best Practices
### Regular Review
* Review reports weekly to identify trends early
* Compare month-over-month metrics for growth tracking
* Export data monthly for historical records
### Data-Driven Decisions
Use report insights to:
* **Adjust pricing**: Increase rates during high-demand periods
* **Plan inventory**: Add resources before busy seasons
* **Focus marketing**: Target customer segments with highest value
* **Improve operations**: Optimize staffing based on actual usage
### Client Relationship Management
* Reach out to top clients with special offers
* Monitor changes in client spending patterns
* Identify at-risk relationships from declining bookings
Historical data accuracy depends on maintaining consistent resource settings. Changes to resource availability settings will affect future reports but not past data.
## Related Articles
* [Managing Resources](/resources) - Configure service assets
* [Understanding Invoices](/invoices) - Track payment data
* [Contacts](/contacts) - Convert prospects to clients
# Sales Tax Report
Source: https://docs.flashquotes.com/reports/sales-tax
See total sales, taxable amounts, and taxes collected for any date range
Find out how much sales tax you've collected and what you owe.
Go to **Reports → Sales tax** in the sidebar.
Looking for the old location? The sales tax report now lives under
**Reports**. It was previously found under Finance.
## What the report shows
The report shows one row per tax rate, with totals at the bottom:
| Column | What it means |
| ------------------------------- | ------------------------------------ |
| Tax name / Tax rate | The tax rate applied to the payments |
| Total collected (including tax) | Everything customers paid you |
| Total sales (excluding tax) | Collected amount minus tax |
| Taxable amount | The portion of sales subject to tax |
| Tax | Tax collected — the amount you owe |
## Filter by date
Use the **Payment date** filter to pick any range. Presets cover common periods like last month and year-to-date. The report defaults to last month.
Numbers are based on invoice payments — a sale appears here when the payment
is made, not when the invoice is sent. Platform fees paid by your customers
are excluded from the totals.
## Related Articles
* [Invoice Management](/invoices)
* [Payments](/finance/payments)
* [QuickBooks Sync](/finance/quickbooks-sync)
# Resources
Source: https://docs.flashquotes.com/resources
Learn how to manage your business assets and equipment in Flashquotes
## Overview
Resources in Flashquotes represent your physical business assets - from core service equipment to transportation vehicles. Tracking resources helps you monitor availability and assign the right equipment to events.
## Resource Categories
Resources are organized into three categories:
Primary equipment used to deliver your services:
* Coffee carts
* Mobile bars
* Service trailers
* Primary service equipment
Core resources are used for availability tracking on booking forms and the Service Asset Utilization report.
Vehicles used for event logistics:
* Vans
* Trucks
* Trailers
* Delivery vehicles
Additional equipment and assets:
* Supplementary equipment
* Backup items
* Miscellaneous assets
## Managing Resources
To add a new resource:
1. Go to **Services & items** in the sidebar, then open the **Resources** tab
2. Click **Add Resource**
3. Enter the resource details:
* **Name** - A unique identifier (e.g., "Cart One", "White Van")
* **Category** - Core Service Asset, Transport, or Other
* **Location** - Which business location this resource belongs to
* **Status** - Available or Unavailable
* **Description** - Optional details about the resource (up to 300 characters)
Consider using memorable, themed names for resources to make them easy to identify.
Upload a photo for each resource to:
* Display the resource option in resource picker questions on booking forms
* Help clients visually select their preferred service asset
* Provide visual reference when assigning resources to events
Click on any resource in the list to edit its details, update its status, or change its location assignment.
## Availability Tracking
Resources are tracked for availability based on event assignments:
* **Available status**: The resource can be assigned to new events
* **Unavailable status**: The resource is out of service and won't appear as an option for event assignment
* **Event conflicts**: When assigning resources to events, the system shows which resources are already booked for that date
Core service assets are used to calculate availability shown on booking forms. If you need accurate availability tracking, make sure to add your core resources.
## Service-Specific Resources
Resources are automatically linked to all existing services when created. To restrict a resource to specific services, configure the links from the service detail page. Go to **Services & items**, click a service, and use the **Linked Resources** section to select which resources can fulfill that service.
If no resources are linked to a service, none will count toward availability for that service.
**How links affect availability:**
* **Lead intake form date picker** — shows availability based only on linked resources for the selected services
* **Quote presentation and booking form availability badges** — reflect whether enough linked resources are free
* **Multi-day events** — the date picker checks that linked resources are available for every consecutive day, not just the start date
* **Multiple services** — when a quote includes multiple services, only resources linked to **all** selected services count
[Configure service links →](/services/core-services#service-specific-resources)
## Assigning Resources to Events
Resources can be assigned to events from the event detail page. When selecting resources:
* Only resources marked as "Available" are shown
* Resources already booked on that date are hidden to prevent double-booking
* Resources are filtered by the event's location
Assign resources to every event to keep your availability accurate and avoid overbooking.
## Resource Availability in the Quote Editor
When you're building or editing a quote, the quote editor shows resource availability for the event date so you can spot conflicts before sending the quote.
* See how many resources are free on the event date
* Catch double-bookings before they reach the customer
* Resources also show on the [calendar](/calendar#resource-availability) — use the Resources filter to focus on a single asset
## Utilization Reporting
Monitor your core service asset utilization on the [Reports](/reports#service-asset-utilization) page:
* View daily utilization across a date range
* See booked vs quoted capacity
* Identify your busiest days
* Track average daily utilization
## Best Practices
1. **Add all core service assets** to enable accurate availability tracking
2. **Keep status current** - mark resources as unavailable when they're out of service
3. **Upload photos** to help with quick identification
4. **Assign resources to events** to maintain accurate utilization data
5. **Review the utilization report** to understand capacity and plan for busy periods
## Next Steps
After setting up resources:
* [Configure booking forms](/forms) to show availability
* [Create events](/events) and assign resources
* [Review utilization reports](/reports) to monitor capacity
# Services
Source: https://docs.flashquotes.com/services
Set up and manage your core services, pricing, and add-ons
## Overview
Services are the foundation of your Flashquotes business. Configure what you offer, how you price it, and what extras customers can add.
**New to services?** Start with [Structuring Your Services](/services/structuring-services) to learn how to design services that are simple, powerful, and easy to quote.
## Quick Setup
Set up your services in 3 steps:
1. **Define core services** - Your main offerings (bar service, photo booth, etc.)
2. **Configure pricing** - Per hour, flat rate, or custom pricing models
3. **Add extras** - Upsells and add-ons to increase booking value
## Service Management
Services, add-ons, and resources all live under **Services & items** in the sidebar:
* **Services**: The first tab. Manage your core offerings here.
* **Add-ons**: The second tab. Create extras and upsells here.
How to design services that convert
Your main business offerings and service packages
Configure pricing for each service
Extra services and upsells to boost revenue
## How Services Work
**In quotes:** Customers see your services with clear pricing and descriptions. They can select add-ons and customize their package.
**In bookings:** Confirmed services transfer automatically to your calendar and event management system.
**In invoicing:** Service details flow through to invoices with accurate pricing and tax calculations.
## Getting Started
1. Start with your main service offering
2. Set clear pricing that covers your costs
3. Add 2-3 popular add-ons
4. Test with a sample quote
Services created here appear in quote generation and customer-facing forms. Make descriptions clear and pricing accurate.
## Next Steps
* [Set up core services](/services/core-services)
* [Configure pricing models](/services/pricing)
* [Create add-ons](/services/add-ons)
# Add-ons
Source: https://docs.flashquotes.com/services/add-ons
Create upsells and extras to boost booking revenue
## Overview
Add-ons are extras and upsells that customers can add to their bookings. Go to **Services & items** in the sidebar, then open the **Add-ons** tab to create and manage them. Each add-on can be configured with specific pricing models and quantity limits.
**Not sure if something should be a service or an add-on?** See [Structuring Your Services](/services/structuring-services) for guidance. In general, if a customer wouldn't book it on its own, it's an add-on.
**Common add-ons:**
* Extra hours of service
* Additional staff members
* Custom cups, sleeves, or branding
* Premium upgrades (syrups, milk options)
* Travel fees or special setup charges
## Add-on Configuration
Set up new add-ons with:
* Display name
* Description
* **Line Item Description** — how it appears on the quote and invoice. Supports rich text and [shortcodes](/workflows/shortcodes/overview) (e.g. `{{quote.guest_count}}`, `{{lead.first_name}}`) that resolve when the quote is created.
* Pricing structure
* Quantity limits (for Per unit, Per unit per hour, and Per unit per guest)
* Minimum price (optional, for variable-rate add-ons)
* Add-on image
### Quantity Limits
For **Per unit**, **Per unit per hour**, **Per unit per guest**, and **Per guest per hour** add-ons, set minimum and maximum quantity controls:
* **Min Quantity**: Enforce minimum order requirements
* **Max Quantity**: Prevent over-ordering or resource conflicts
* **Default Quantity**: Uses minimum if set, otherwise defaults to 1
**Examples**:
* Cocktail tables: Min 2, Max 10 (event space limitations)
* Bartenders: Min 1, Max 4 (staffing availability)
* Photo booth props: Min 5, Max 25 (package deals)
Quantity limits only apply to Per unit, Per unit per hour, Per unit per guest, and Per guest per hour. Flat rate and other pricing models don't use these controls. Flat and Per unit do not use minimum price.
Configure pricing models:
* **Flat rate**: Fixed price regardless of quantity
* **Per unit**: Price multiplied by quantity ordered
* **Per guest**: Price based on guest count
* **Per hour**: Price based on service duration
* **Per resource**: Price based on resources used
* **Per unit per hour**: Combined unit and hourly pricing
* **Per unit per guest**: Price per unit scaled by guest count (and number of days); quantity is applied at line level (e.g. per-guest cocktail pricing with multiple options)
* **Per guest per hour**: Price based on guest count multiplied by service duration in hours (and number of days); ideal for consumption-based add-ons that scale with both attendance and time
* **Per resource per hour**: Per-resource hourly rate, with an optional per-resource setup base and an optional per-resource-per-day minimum hours floor. Use for add-ons that scale by both resource count and time (e.g. additional bartenders billed by the hour with a setup fee per bartender). Customer-facing copy reads "\$X per hour" (with the base shown as a leading term when set) — "resource" is hidden from the lead form.
* **Tiered per guest**: Offer volume discounts on **Per guest** add-ons by setting rate bands (e.g. \$5/guest for 1–49, \$4/guest for 50–99, \$3/guest for 100+). The applicable tier is chosen based on the guest count on the quote.
### Minimum Price (Optional)
For variable-rate add-ons (**Per guest**, **Per hour**, **Per resource**, **Per unit per hour**, **Per unit per guest**, **Per resource per hour**), you can set an optional minimum price. If the calculated price is below this amount, the minimum is used. Leave blank for no minimum. Flat rate and Per unit do not use minimum price.
Choose pricing models that align with your operational costs and market positioning.
## Add-on Management
Manage add-on details:
* Availability status
* Display order
* Category assignment
* Required resources
Customize appearance:
* Add-on images
* Description formatting
* Feature highlights
* Upsell messaging
## Pricing Details
**Per unit per guest**: Unit price × guests × days, then × quantity (e.g. \$1 per guest per cocktail × 100 guests × 1 day = \$100 per unit; quantity 3 = \$300 total).
**Per guest per hour**: Unit price × guests × days × hours (e.g. \$2/guest/hr × 50 guests × 1 day × 4 hours = \$400).
**Per resource per hour**: (base + rate × effectiveHours × days) × resources. The optional per-resource-per-day minimum-hours floor applies to `effectiveHours` *before* the resource and day multipliers — e.g. a 2-hour floor at \$100/hr produces a \$200/resource/day minimum on the variable portion, then scales by resources and days. The per-resource setup base is added on top and is never floored by the minimum price.
**Minimum price**: If you set a minimum price, the line total will never be less than that amount for variable-rate add-ons.
### How Quantity Limits Work
**Minimum Quantity**:
* Prevents customers from ordering below your business requirements
* Automatically sets as default quantity when customers add the item
* Useful for items that require minimum orders to be profitable
**Maximum Quantity**:
* Prevents over-ordering beyond your capacity
* Helps manage resource allocation and logistics
* Protects against inventory shortages
**Common Use Cases**:
* Audio equipment: Min 1 speaker, Max 8 speakers (venue size limits)
* Linens: Min 10 napkins, Max 200 napkins (bulk order efficiency)
* Staff: Min 1 server, Max 6 servers (team size management)
## Service-Specific Add-ons
Add-ons are automatically linked to all existing services when created. To restrict an add-on to specific services, configure the links from the service detail page. Go to **Services & items**, click a service, and use the **Linked Add-ons** section to select which add-ons apply.
When a customer selects a service on a quote request form, only linked add-ons are shown. If no add-ons are linked to a service, none will appear for that service.
* **Multiple services** — the customer sees every add-on linked to any of the selected services
* **Add-on options update instantly** as customers change their service selection on forms
Add-ons that an admin has already added as line items on a quote are always shown, regardless of service links.
[Configure service links →](/services/core-services#service-specific-add-ons)
## Best Practices
1. Use clear, descriptive names
2. Set appropriate pricing models
3. Maintain accurate descriptions
4. Update availability regularly
5. Test automation workflows
## Next Steps
After configuring add-ons:
* [Review quote settings](/settings/quotes)
* [Set up integrations](/settings/integrations/overview)
* Test add-on functionality
* Monitor sales performance
# Core Services
Source: https://docs.flashquotes.com/services/core-services
Set up your main service offerings and packages
Before creating services, read [Structuring Your Services](/services/structuring-services) to understand what should be a service vs. an add-on or pricing rule.
## Create Your First Service
Go to **Services & items** in the sidebar and click **New Service**.
**Service fields:**
* **Service Name**: What customers see on quotes (e.g., "Mobile Bar Service")
* **Description**: Brief explanation for customers
* **Line Item Description**: How it appears on invoices. Supports rich text formatting and [shortcodes](/workflows/shortcodes/overview) like `{{quote.guest_count}}` or `{{lead.first_name}}` — shortcodes resolve when the quote is created.
* **Base Price**: Starting price for the service
* **Minimum Price**: Lowest acceptable price
* **Pricing Options**: Configure hourly rates and per-guest pricing
## Service Pricing Configuration
Each service can have multiple pricing components:
**Base Price**: The starting price for your service
* Sets the foundation cost
* Can be a flat fee or starting point for calculations
**Hourly Rate per Staff**: Price per hour per staff member
* Multiplied by number of staff and hours
* Great for labor-intensive services
**Price per Guest**: Additional charge per attendee
* Scales with event size
* Perfect for consumption-based services
**Minimum Price**: The lowest you'll accept
* Ensures profitability on all bookings
* Overrides calculated prices if they're too low
Your final price = Base Price + (Staff × Hours × Hourly Rate) + (Guests × Per Guest Rate), with the Minimum Price as a floor.
Make your service appealing:
* **Service Image**: Upload a high-quality photo
* **Description**: Clear, benefit-focused text
* **Line Item Description**: Professional invoice wording — supports rich text and [shortcodes](/workflows/shortcodes/overview) (e.g. `{{quote.guest_count}}`) that resolve when the quote is created
Good descriptions and images significantly improve conversion rates.
## Service Examples
**Popular service types:**
* Bar Services (mobile bar, bartending, cocktail packages)
* Photo Services (booth, photographer, instant prints)
* Catering (appetizers, full meals, dessert stations)
* Entertainment (DJ, live music, games)
* Equipment (lighting, sound, furniture)
## Service Descriptions
Write clear descriptions that sell:
✓ **Good**: "Full-service mobile bar with professional bartender, premium liquor selection, and custom cocktail menu for 4-hour events"
✗ **Too vague**: "Bar service available"
✗ **Too long**: Three paragraphs explaining every detail
## Pricing Examples
Common pricing strategies:
* **Hourly services**: Base $200 + $75/hour per bartender
* **Flat packages**: Base \$1,200 for photo booth (4-hour minimum)
* **Per-person services**: Base $500 + $25/guest for catering
## Service-Specific Add-ons
Control which add-ons appear when customers select this service on a quote request form.
**Automatic linking:** When you create a new service, it's automatically linked to all existing add-ons. When you create a new add-on, it's automatically linked to all existing services. You can then remove links you don't need.
To configure:
1. Go to **Services & items** and click on a service
2. Find the **Linked Add-ons** section
3. Click the edit icon and select the add-ons that apply to this service
4. Save your changes
Only linked add-ons are available for a service. If no add-ons are linked, none will be shown for that service on forms.
**How it works with multiple services:**
When a customer selects multiple services on a form, they see every add-on linked to any of the selected services.
For example:
* "Mobile Bar" is linked to: Extra Hours, Premium Spirits, Custom Cups
* "Photo Booth" is linked to: Extra Hours, Backdrop Upgrade
* Customer selects both → all four add-ons are shown
## Service-Specific Resources
Control which resources can fulfill a specific service. This drives availability on your forms and quotes.
**Automatic linking:** When you create a new service, it's automatically linked to all existing resources. When you create a new resource, it's automatically linked to all existing services. You can then remove links you don't need.
To configure:
1. Go to **Services & items** and click on a service
2. Find the **Linked Resources** section
3. Click the edit icon and select the resources that can deliver this service
4. Save your changes
Only linked resources are eligible for a service. If no resources are linked, none will count toward availability for that service.
**How it affects availability:**
The date picker on your lead intake form reflects only the resources linked to the selected services. Quote presentation and booking form availability badges also update based on linked resources.
For quotes with multiple services, only resources linked to **all** selected services count toward availability.
For example:
* "Espresso Bar" is linked to: Cart A, Cart B
* "Cocktail Bar" is linked to: Cart B, Cart C
* A quote with both services → only Cart B counts toward availability
If you run multiple service types with different equipment, linking specific resources per service prevents availability conflicts.
## What Happens Next
Services appear in:
* Quote generation forms
* Customer booking pages
* Invoice line items
* Calendar scheduling
## Common Issues
**Service not appearing in quotes**: Check availability rules and make sure service is active
**Pricing seems wrong**: Verify the pricing model matches your intended structure (hourly vs. flat rate)
**Customers confused by description**: Keep descriptions focused on value and what's included
# Service Pricing
Source: https://docs.flashquotes.com/services/pricing
Configure pricing for your services using flexible pricing components
## How Service Pricing Works
In Flashquotes, pricing is configured directly on each service. You can combine multiple pricing components to create the perfect pricing structure for your business.
Pricing rules let you handle variations like duration, guest count, and event type **within a single service**—no need to create separate services for each scenario. See [Structuring Your Services](/services/structuring-services) to learn more.
## Pricing Components
Each service can use any combination of these pricing elements:
The foundation of your pricing:
* Fixed amount added to every quote
* Use for setup fees, minimum charges, or equipment costs
* Can be the entire price for simple flat-rate services
**Example**: \$500 base for photo booth rental
Labor-based pricing:
* Charged per hour, per staff member
* Choose how hours are counted: **shift hours** (full crew shift — packing, unloading, on-site setup, service, and teardown) or **service hours** (the customer-facing service window only)
* Both modes exclude travel — bill drive time separately via [travel fees](/services/travel-fees)
* Automatically multiplies by hours and staff count
**Example**: \$75/hour per bartender. A 4-hour service with 1 hour packing/unloading and 30 min setup + 30 min teardown bills **6 shift hours** (\$450) or **4 service hours** (\$300) per bartender.
Use **shift hours** to charge for your crew's full on-the-clock time. Use **service hours** when you only want to bill the customer-facing portion of the event.
Scale with event size. Choose how the guest rate is applied:
* **Per guest**: Flat rate multiplied by guest count. Great for per-person food, favors, or fixed per-head costs.
* **Per guest per hour**: Rate multiplied by guest count and event duration. Ideal when consumption or service scales with both attendance and time.
**Example (Per guest)**: \$15 per guest for appetizer service — 50 guests = \$750
**Example (Per guest per hour)**: \$3/guest/hr for bar service — 50 guests × 4 hours = \$600
Offer volume discounts as guest counts grow. Replaces a flat per-guest rate with rate bands.
* Set per-guest tiers (e.g. \$20/guest for 1–49, \$15/guest for 50–99, \$12/guest for 100+)
* Only works with the **Per guest** mode (not Per guest per hour)
* Optional **minimum hourly guests** floor — bill against a minimum guest count for short, low-attendance events
**Example**: \$20/guest under 50, \$15/guest at 50+ — a 75-guest event bills \$15 × 75 = \$1,125
Resource-based pricing. Choose how the resource rate is applied:
* **Per resource**: Flat rate multiplied by resource count. Great for setup, delivery, or unit-based equipment fees.
* **Per resource per hour**: Rate multiplied by resource count and event duration. Useful for equipment that bills by run-time (machines, generators, espresso bars).
**Example (Per resource)**: \$50 per espresso machine — 2 machines = \$100
**Example (Per resource per hour)**: \$25/machine/hr — 2 machines × 4 hours = \$200
Charge per individual item your customer selects:
* Set a unit name (e.g., "churro", "paleta", "espresso shot")
* Configure a price per unit and optional min/max quantity constraints
* Customers choose their quantity on the lead intake form
**Example**: \$3 per espresso shot, min 50, max 200 — a customer who enters 75 shots adds \$225 to their quote
Protect your profitability:
* Sets the absolute minimum you'll accept
* Overrides calculated price if it's too low
* Ensures every booking meets your minimum requirements
**Example**: \$800 minimum for any event
## Pricing Formula
Your service price is calculated as:
```
Final Price = MAX(
Base Price + (Staff × Hours × Hourly Rate) + Guest Component + Resource Component + (Units × Per Unit Rate),
Minimum Price
)
```
The **Guest Component** depends on the guest pricing mode set on the service:
* **Per guest**: `Guests × Per Guest Rate`
* **Per guest per hour**: `Guests × Hours × Per Guest Rate`
The **Resource Component** depends on the resource pricing mode:
* **Per resource**: `Resources × Per Resource Rate`
* **Per resource per hour**: `Resources × Hours × Per Resource Rate`
This ensures you're always paid at least your minimum while allowing flexible pricing based on event specifics.
## Common Pricing Strategies
### Flat Rate Services
**Setup**: High base price, no hourly or per-guest charges
**Example**:
* DJ Service: \$1,500 base price
* Covers up to 5 hours
* Simple, predictable pricing
### Hourly Services
**Setup**: Low/no base price, strong hourly component
**Example**:
* Bartending: \$100 base + \$75/hour per bartender
* Scales with event duration
* Fair for both short and long events
### Per-Person Services
**Setup**: Base price for minimums, per-guest for scaling
**Example**:
* Catering: \$500 base + \$25 per guest
* Covers fixed costs + variable food costs
* Profitable at any event size
### Per-Person Per-Hour Services
**Setup**: Per-guest rate that also scales with event duration (use "Per guest per hour" mode on the service)
**Example**:
* Bar or beverage service: \$4/guest/hr
* 75 guests × 5 hours = \$1,500 from the guest component alone
* Ideal when consumption or service intensity scales with both attendance and time
### Per-Resource Services
**Setup**: Base price for labor/setup, per-resource for equipment
**Example**:
* Photo Booth Rental:
* \$200 base (delivery/setup)
* \$150 per booth
* Scales with equipment count
### Per-Unit Services
**Setup**: Base price for setup/travel, per-unit for item count the customer selects
**Example**:
* Balloon Twisting:
* \$150 base (setup/travel)
* \$3 per balloon, min 50, max 300
* Ideal when consumption doesn't scale with attendance and you'd rather have the customer order a specific quantity
### Hybrid Pricing
**Setup**: Combine all elements for sophisticated pricing
**Example**:
* Full Bar Service:
* \$300 base (equipment/setup)
* \$75/hour per bartender (labor)
* \$12 per guest (supplies)
* \$5 per signature cocktail kit (per unit, min 10)
* \$1,000 minimum
## Setting Your Prices
Go to **Services & items** in the sidebar
Click on an existing service or create a new one
Set your base price, hourly rates, per-guest pricing, and minimum
Create test quotes to verify pricing calculations
## Pricing Tips
Include setup time, travel, supplies, and overhead in your pricing
Set minimums that ensure profitability even for small events
Don't use every pricing component unless necessary
Create sample quotes for different scenarios before going live
## Dynamic Pricing
Adjust prices automatically based on demand, lead time, and event type. Dynamic modifiers stack on top of your base pricing.
Automatically charge more when **resource availability is low** for a service — high demand triggers a price uplift, no manual adjustment required.
* **Percentage modifier** added to the service price when availability dips
* **Service-aware** — references only the resources [linked to that service](/resources#service-specific-resources), so demand is measured per service rather than across all your resources
* Auto-applies on any quote for dates where the linked resources are scarce
Modify the service price based on **event lead time** — how far out the event is from the booking date. Use it to upcharge rush jobs, charge a premium for far-out reservations that lock up your calendar, or both.
* Set tiers by days between the booking and the event
* **Short lead time** — e.g. +30% within 7 days to cover the cost of rush jobs
* **Long lead time** — e.g. +10% beyond 12 months to price in the opportunity cost of holding the date
Charge differently for the same service depending on event type — wedding, corporate, festival, and more:
* Set the price modifier for each event type on a service
* Bump or discount specific event types
* Captured from the [Event Type form question](/forms/lead-intake) on your lead intake form
## Service Charges
You can also apply automatic service charges (like gratuity or delivery fees) that calculate as a percentage or flat fee on top of your service pricing.
Navigate to **Settings → Service Charges** to configure these additional fees.
## Common Questions
**Q: Can I have different prices for different event types?**
A: Yes — use [Pricing by Event Type](#dynamic-pricing) to apply different rates for weddings, corporate events, festivals, and more, all within a single service. See [Structuring Your Services](/services/structuring-services) for best practices.
**Q: How do I handle peak season pricing?**
A: Use [Surge Pricing](#dynamic-pricing) to set premium rates on high-demand dates. Modifiers apply automatically on matching quotes.
**Q: What if my costs vary by location?**
A: Use the minimum price to ensure you cover base costs, and configure travel fees as an add-on or manual adjustment.
## Next Steps
* [Create your services](/services/core-services)
* [Add upsells with add-ons](/services/add-ons)
* [Configure service charges](/settings/service-charges)
* Test your pricing with sample quotes
# Staff & Resource Rules
Source: https://docs.flashquotes.com/services/staff-resource-rules
Configure per-service staffing rules to automatically calculate staff and resource quantities for quotes
## Overview
Staff & Resource Rules let you define staffing rules at the service level. When a customer fills out your lead intake form, Flashquotes automatically calculates how many staff and resources are needed — based on hourly capacity, guest count, duration, or a combination — and applies those quantities directly to your quote pricing.
Each service gets its own rule. When a quote is created, Flashquotes calculates the price for each service individually using that service's calculated staff and resource quantities.
If a selected service doesn't have a staffing rule configured, Flashquotes falls back to the [form-level staffing calculator](/forms/staffing-calculator) settings.
## Rule Modes
Each service's rule uses one of four modes. Choose the one that matches how your staffing scales.
### Hourly Capacity
The default mode. Uses a formula based on guest count, service duration, and a capacity ratio.
**How it works:**
* Set how many items (coffees, cocktails etc.) one staff member can serve per hour
* Flashquotes divides total demand by that capacity to get the staff count
* Optionally set a minimum and maximum staff count
* Set a staff-per-resource ratio (e.g., 1 resource for every 2 staff)
**Example:** A coffee catering company sets capacity to 50 drinks/hour/staff and staff-per-resource ratio at 2 staff to 1 resource. For 200 guests over 3 hours: `200 guests / 3 hours / 50 per hour = 2 staff needed and 1 resource needed`.
### By Guest Count
Maps guest count ranges to fixed staff and resource quantities.
**How it works:**
* Define guest count ranges (e.g., 1–74, 75–149, 150–300)
* For each range, specify how many staff and resources are needed
* The customer's guest count determines which range applies
**Example:** A photo booth company needs 1 attendant for up to 100 guests, 2 for 100–250, and 3 for 250+. Three ranges, done.
### By Duration
Maps service duration ranges to staff and resource quantities.
**How it works:**
* Define duration ranges (e.g., 1–2 hours, 2.5–4 hours, 4.5–8 hours)
* For each range, specify staff and resource counts
* The customer's selected service length determines which range applies
**Example:** A DJ service needs 1 DJ for events up to 4 hours, 2 DJs for anything longer. Two ranges cover it.
### By Guest Count + Duration
A two-dimensional table that factors in both guest count and service duration at the same time.
**How it works:**
* Define guest count ranges along the rows
* Define duration ranges along the columns
* Each cell specifies staff and resource counts for that combination
* Both the guest count and duration must match for a cell to apply
**Example:** A bartending company staffs differently based on crowd size and event length:
| | 1–2 hours | 2.5–4 hours | 4.5+ hours |
| ----------------- | --------- | ----------- | ---------- |
| **1–49 guests** | 1 staff | 1 staff | 2 staff |
| **49–150 guests** | 2 staff | 2 staff | 3 staff |
| **151+ guests** | 3 staff | 4 staff | 5 staff |
## Setting Up a Rule
Go to **Services & items**, then select the service you want to configure.
Click the **Staffing Rules** tab on the service page.
Select a mode from the dropdown: **Hourly Capacity**, **By Guest Count**, **By Duration**, or **By Guest Count + Duration**.
Fill in your ranges, capacities, or matrix values. Changes save automatically.
Go to the **Pricing** section on the service to see how the rules interact with pricing settings to build your service price.
## How Rules Apply to Quotes
When a quote is created from your lead intake form, Flashquotes resolves staffing like this:
1. For each selected service with a staffing rule, the rule runs using the guest count and duration
2. Each service's price is calculated using its own staff and resource quantities
3. The quote reflects the per-service pricing based on those calculated quantities
If a guest count or duration falls outside your defined ranges, the rule uses the **highest range** as a fallback. If your guest count table tops out at 300 and a customer enters 400, the 300+ range applies.
## Copying Rules Between Services
If multiple services share similar staffing needs, you can copy a rule configuration from one service to another:
1. Open the rules editor for the service you want to configure
2. Click **Copy from service**
3. Select the source service
4. The full rule configuration (mode, ranges, and values) is copied over
## Form-Level Fallback
The [form-level staffing calculator](/forms/staffing-calculator) uses its own hourly capacity formula to determine staff counts.
When any selected service on a lead intake form has a staffing rule configured, those **service-level rules take priority**. The form-level calculator only runs when no selected services have rules defined.
Configure rules at the service level for more accurate, flexible staffing. Form-level settings are a fallback, not the primary tool.
## Common Questions
**What if only some of my services have rules?**
Services without a defined rule will fallback to using the [form-level staffing calculator](/forms/staffing-calculator) when calculating the service price.
**Can I use different modes for different services?**
Yes. Each service has its own independent rule. One service can use Hourly Capacity while another uses By Guest Count + Duration.
**How do I remove a staffing rule from a service?**
You can just use the Hourly Capacity configuration for this service, which matches the logic of the form-level rules.
# Structuring Your Services
Source: https://docs.flashquotes.com/services/structuring-services
How to design services that are simple, powerful, and easy to quote
Services in Flashquotes work best when they represent clear, bookable experiences—not every variation or add-on. This guide walks through how to design them so your menu stays simple, powerful, and easy to quote.
## What Is a Service?
A **Service** is a core package or experience that a client can book on its own.
**The litmus test:** If a client saw this on your site, could they book *just this* and have it make sense?
A good service describes an **experience**—what happens, for how long, for what kind of event—not just a single line item.
* Espresso Bar Experience
* Hot Chocolate Cart
* Matcha & Tea Bar
* Premium Coffee & Pastry Station
* Full Mobile Bar Service
Each is a distinct, bookable experience.
* Additional Hour
* Extra Barista
* Custom Cups
* Logo Cup Sleeves
* Whipped Cream Topping
These belong as [add-ons](/services/add-ons) or [pricing rules](/services/pricing), layered onto a core service.
## The Basic Structure of a Service
Every service should answer three questions:
| Question | What to include |
| --------------------------------------- | ------------------------------------------------------------------------------------------ |
| **What is the experience?** | Simple, clear name and a short description of who it's for and what guests get |
| **What's included by default?** | Drinks/food offered, typical duration, standard staffing, and basics (cups, syrups, milks) |
| **What can change with pricing rules?** | Duration, guest counts, event types—the price changes, but the service stays the same |
## One Service, Many Prices
Instead of creating separate services like:
```text Don't do this theme={null}
Espresso Bar – 2 Hours
Espresso Bar – 3 Hours
Espresso Bar – Wedding
Espresso Bar – Corporate
```
```text Do this instead theme={null}
Espresso Bar Experience (one service)
├── Pricing rules for duration (2, 3, 4 hours)
├── Pricing rules for guest count brackets
└── Pricing rules for event types (Pro)
```
### Example: Espresso Bar Service
**Service name:** Espresso Bar Experience
**Description:** A full-service espresso cart with handcrafted lattes, cappuccinos, and more, served by professional baristas at your event.
**What's included:**
* 2 hours of service
* Unlimited espresso-based drinks
* Dairy + one non-dairy milk
* 3 standard syrups
**Pricing rules handle:**
* Additional hours (+\$X per hour)
* Guest count brackets (0-50, 51-100, 101-200)
* Event type premiums/discounts (Pro feature)
All of this stays under **one service**, so your menu is clean and easy for clients to understand.
## When to Use Add-ons Instead
Use an [add-on](/services/add-ons) when:
* It only makes sense on top of another service
* A client wouldn't book it by itself
* It describes extra time, upgrades, or customizations
- Extra hours of service
- Additional barista or staff
- Custom cups, sleeves, or branding
- Upgraded syrups or premium milk options
- Photo backdrop or decor upgrades
- Travel fees or special setup charges
If you catch yourself naming something like "Espresso Bar – Extra Hour" as a service, that's a signal it should be an add-on instead.
## How Many Services Should I Have?
You'll get the best results with a **small, focused set** of services and more flexibility in add-ons and pricing rules.
| Business stage | Typical service count |
| ------------------------- | ----------------------------------------- |
| Side hustle / simple menu | 1-2 services |
| Growing business | 3-5 services |
| Multi-concept operations | More, but grouped by distinct experiences |
**Example lineup for a coffee caterer:**
* Espresso Bar Experience
* Hot Chocolate Cart
* Matcha & Tea Bar
* Bottled Lattes / Coffee To-Go
Each can have many internal pricing variations, but clients see a short, understandable list.
## Naming and Descriptions That Convert
### Naming tips
* Classic Espresso Bar Experience
* Hot Chocolate & S'mores Cart
* Cold Brew & Iced Tea Station
Clear, experience-focused names.
* Package 1
* Service A
* Espresso 2hr – Corporate (100-150 guests)
Vague or overloaded with details.
### Description tips
In 2-4 sentences, cover who it's for, what's included, and why it's special:
"Bring a full café experience to your event with our Espresso Bar. Guests enjoy handcrafted lattes, cappuccinos, and more, made to order by a professional barista. Includes a stylish mobile cart, premium beans, dairy and non-dairy milks, and three house syrups."
Let your pricing rules and add-ons handle the details on hours, guest counts, and upgrades.
## Common Mistakes and Fixes
**Problem:**
* "Espresso Bar – 2 Hours"
* "Espresso Bar – 3 Hours"
* "Espresso Bar – Wedding"
**Fix:** Keep one "Espresso Bar Experience" service. Use [pricing rules](/services/pricing) for hours and event types.
**Problem:**
* "Additional Hour"
* "Add Second Cart"
* "Logo Cups"
**Fix:** Attach these as [add-ons](/services/add-ons) to the relevant services instead.
**Problem:**
* "Standard Espresso Bar"
* "Premium Espresso Bar"
* "Deluxe Espresso Bar"
**Fix:** Consider one "Espresso Bar Experience" with add-ons or pricing rules for premium upgrades, unless they're truly distinct experiences.
## Service Structure Checklist
Before you publish, review each service:
Could a client book this on its own and immediately understand what they're getting?
Does it describe an experience, not just a single line item?
Are duration, guest counts, and event types handled by pricing rules instead of separate services?
Are extras (more time, more staff, more customization) handled as add-ons?
Does the name make sense at a glance to someone who's never met you?
If you can answer "yes" to all of these, your service structure is in great shape.
## Next Steps
* [Configure pricing rules](/services/pricing) to handle variations
* [Create add-ons](/services/add-ons) for extras and upgrades
* [Set up your first service](/services/core-services)
# Travel Fees
Source: https://docs.flashquotes.com/services/travel-fees
Configure automatic travel fee calculations per service
# Travel Fees
Each service on a quote gets its own travel fee based on its [core resources](/resources) and distance to the event.
## Company-Wide Settings
These settings apply across all services and are configured on each service page.
### Service Area Radius
How far you'll travel for events, in units applicable to your country. Leads with an address outside this radius are warned about potential additional travel fees.
### Free Travel Radius
Distance around your business with no travel charge. Events beyond this radius are charged a travel fee based on the full distance.
These are different settings. Service area controls how far you'll travel. Free travel radius controls where travel fees start.
## Per-Service Settings
* **Price Per Mile**: Rate per mile, applied to round-trip distance per day per core resource
* **Minimum Travel Fee**: Floor amount per core resource per day — used when higher than the distance-based fee
* **Per-Staff-Hour Travel**: Optionally bill drive time per staff member instead of (or alongside) per-mile pricing — travel costs scale with crew size
Each service can have different price per mile and minimum — useful if one service needs a larger vehicle or more equipment.
### Per-Staff-Hour Travel Billing
Bill drive time per staff member **in addition to** the per-mile, per-resource travel fee. Useful when you pay your crew for travel hours and want to recover that cost on the quote alongside vehicle costs.
* Set an **hourly travel rate per staff member**
* Drive time is calculated from your business location to the event address
* Bills round-trip drive time × staff count per service
* Added on top of the per-mile, per-resource fee — not a replacement for it
The **Minimum Travel Fee** only applies to the mileage portion of the travel fee. Per-staff-hour travel billing is always added in full on top — it is not subject to the minimum.
**Example**: 2 hours round-trip × 3 staff × \$25/hour = \$150 travel labor on the quote
## How It's Calculated
If the event is **within** the free travel radius, no travel fee applies. If it's **outside** the radius, the fee is calculated on the full round-trip distance:
```
Service Travel Fee = MAX(
Round Trip Miles × Days × Service Resources × Price Per Mile,
Minimum Fee × Service Resources × Days
)
```
* **Round Trip Miles** = one-way distance × 2
* **Service Resources** = core resources on that service line item
* **Days** = number of event days
**Example**: Espresso Bar — 28 miles away (outside 10-mile free radius), 2 resources, 2 days:
* Distance-based: 28 mi × 2 (round trip) × 2 days × 2 resources × \$0.75/mi = **\$168**
* Minimum-based: \$35 minimum × 2 resources × 2 days = **\$140**
* Result: **\$168** (higher of the two)
## Editing on Quotes
Travel fees show as line items on each service. You can:
* **View the breakdown** — see distance, resources, rate, and free radius
* **Edit the amount** — override the calculated fee on any service line item
* **Remove it** — delete the travel fee from a specific service
Travel fees are auto-calculated on quote requests from your lead intake form when a location and event address are provided. Each service gets its own fee based on its core resource count.
## Auto-Calculation in the Quote Editor
When you add a service to a quote in the quote editor, the travel fee is calculated and added automatically — no extra step required.
# Branding
Source: https://docs.flashquotes.com/settings/branding
Upload your logo and set brand colors
## Overview
Branding settings let you upload your company logo and set brand colors. This applies to forms, quotes, and other client-facing elements.
**When you need this:** After completing company setup to maintain brand consistency.
## Upload Logo
Steps:
1. Go to Settings > Branding
2. Click "Upload Logo" or drag image to upload area
3. Select your logo file (PNG, JPG, or SVG recommended)
4. Logo appears immediately on forms and quotes
**What happens next:** Your logo displays on all client-facing pages.
**Common issues:**
* Logo appears blurry: Use high-resolution image (minimum 200px wide)
* Logo too large: Flashquotes automatically resizes, but smaller files load faster
## Set Brand Colors
Steps:
1. Scroll to Brand Colors section
2. Click the color picker
3. Select your primary brand color
4. Preview changes in real-time
5. Click Save
**What happens next:** Forms and quotes use your brand color for buttons and accents.
**Common issues:**
* Color doesn't match website: Use your website's exact hex code
* Poor contrast: Ensure color works with white text for accessibility
## What Gets Branded
Your logo and colors apply to:
* Lead intake forms
* Quote pages
* Booking confirmation pages
* Invoice headers
**Note:** Advanced form styling and email template customization are not currently available.
## Best Practices
1. Use high-resolution logo files
2. Choose colors with good contrast
3. Test on mobile devices
4. Keep branding consistent with your website
## Next Steps
After setting up branding:
* [Configure quote settings](/settings/quotes)
* [Set up forms](/forms)
* Test a sample quote to verify appearance
# Company Settings
Source: https://docs.flashquotes.com/settings/general
Configure basic company information, Stripe setup, and location settings
## Overview
Company settings (found at `/settings` and labeled "Company" in navigation) contain your core business configuration. This includes company information, Stripe payment setup, and location management.
**When you need this:** Initial account setup and any time you need to update business details.
## Company Information
Steps:
1. Go to Settings (labeled "Company" in navigation)
2. Update your company details:
* Company name
* Invoice display name
* Invoice address
* Contact email and phone
3. Click Save Changes
**What happens next:** This information appears on all invoices and client communications.
Company and location IDs are used for building automations with platforms like Zapier.
## Stripe Payment Setup
Steps:
1. Go to Settings > Stripe Connect section
2. Click "Connect Stripe Account"
3. Complete Stripe onboarding process
4. Verify connection status shows "Connected"
**What happens next:** You can accept payments through forms and quotes.
**Common issues:**
* Connection fails: Verify business information matches Stripe requirements
* Payments not processing: Check Stripe dashboard for account restrictions
## Location Management
Steps:
1. Scroll to Location section in Company settings
2. Set headquarters address (where resources are stored)
3. Configure timezone for accurate event scheduling
4. Set default email account for quote delivery
5. Set default tax rate for automatic quote calculations
**What happens next:** Drive times and service areas calculate accurately.
**Common issues:**
* Incorrect drive times: Verify headquarters address is where equipment is stored
* Wrong timezone: Events will display incorrect times to clients
### Archive a location
Archiving hides a location you no longer use without deleting any of its data. Only members with the Admin or Owner role can archive or restore locations.
Steps:
1. Scroll to the Location section in Company settings.
2. Open the actions menu on the location row.
3. Click Archive.
**What happens next:**
* The location moves to the collapsed Archived section and stops appearing in location menus, service-area calculations, and aggregate views.
* Quotes and events already linked to the location are not impacted
* No data is deleted — you can restore the location at any time.
**Common issues:**
* Don't see the Archive option: You're not an Admin or Owner, or this is your last active location. You can't archive your last active company location — create another location first.
### Restore a location
Steps:
1. Scroll to the Location section in Company settings.
2. Next to the Archived heading, click Show to expand the archived locations.
3. Open the actions menu on the archived location and click Restore.
**What happens next:** The location returns to the Active list and is immediately available in menus and service-area calculations again.
Only Owner and Admin roles can see archived locations
## Currency and Locale
Flashquotes supports multiple currencies and locales for businesses operating in different countries. Currency and locale are set during company onboarding based on your country and determine how amounts are formatted across quotes, invoices, payments, and reports.
### Supported currencies
| Currency | Code | Regions |
| ----------------------- | ---- | ---------------------- |
| US Dollar (USD) | USD | United States |
| British Pound (GBP) | GBP | United Kingdom |
| Australian Dollar (AUD) | AUD | Australia, New Zealand |
| Canadian Dollar (CAD) | CAD | Canada |
### Supported locales
| Locale | Code | Formatting Example |
| ------------------------ | ----- | ------------------ |
| English (United States) | en-US | \$1,250.00 |
| English (United Kingdom) | en-GB | £1,250.00 |
| English (Australia) | en-AU | \$1,250.00 |
| English (Canada) | en-CA | \$1,250.00 |
| English (Ireland) | en-IE | €1,250.00 |
Your locale controls how currency symbols, decimal separators, and number grouping appear throughout the application. All amounts are stored in the smallest currency unit (cents/pence) for precision.
Currency and locale are configured during onboarding. You can change your currency and locale anytime in Company Settings.
For details on which countries are supported and tax ID requirements, see [Supported Countries & Tax IDs](/settings/supported-countries).
## Best Practices
1. Connect Stripe before launching any forms
2. Set headquarters to actual equipment storage location
3. Configure default tax rate to avoid manual entry
4. Link primary business email for quote delivery
## Next Steps
After configuring company settings:
* [Set up branding](/settings/branding) (logo and colors only)
* [Configure quote settings](/settings/quotes)
* [Add service charges](/settings/service-charges)
## Delete a company
A company member with the Owner role can permanently delete a company and all of its data. This cannot be undone. Non-owner roles cannot delete a company.
Steps:
1. Go to Settings and click Company.
2. Scroll to the Danger Zone section at the bottom of the page and click Delete company.
3. Review what will happen, then click "I understand, continue".
4. Type your company name exactly as shown to confirm.
5. Click Permanently delete.
**What happens next:**
* Your lead intake form on your website goes offline
* Public pages like customer quotes stop loading
* All users lose access to the company right away
* Any active flashquotes subscription is automatically canceled
* Third-party connections like Google and QuickBooks are disconnected
* All your company data is scheduled for permanent deletion
**Common issues:**
* Don't see the Danger Zone: You're not the Owner for this company. Ask the current Owner, or have them transfer ownership first
* "Permanently delete" stays disabled: The typed name has to match your company name exactly, including capitalization and spaces
# Choosing Your Email Service Provider
Source: https://docs.flashquotes.com/settings/integrations/email-provider
Why Google Workspace/Gmail is strongly recommended for the best Flashquotes experience
Use Google Workspace/Gmail for the best Flashquotes experience. Other email providers work but with major limitations.
## Why Google Workspace is strongly recommended
With Gmail integration, you unlock these features:
### Professional email sending
* Send quotes and invoices from your business email (not generic Flashquotes addresses)
* Customers see your company name and domain in their inbox
* Better deliverability and trust with recipients
### Complete email activity tracking
* See all email conversations with contacts in one place
* Automatic email sync shows replies and responses
* Thread management keeps conversations organized
### Two-way communication
* Reply to customer emails directly from Flashquotes
* View entire email history with each contact
* Compose and send emails without leaving the platform
### Advanced automation
* Auto-watching for new emails and replies
* Real-time email activity updates
* Workflow triggers based on email interactions
### Reliable delivery with fallback
* Primary sending through your Gmail account
* Automatic fallback to Flashquotes servers if Gmail fails
* Never miss sending important quotes or invoices
## What happens without Gmail
If you don't connect Gmail:
* Emails send from generic Flashquotes.com addresses
* No email activity feed or conversation history
* Can't reply to customers from within Flashquotes
* Missing automated email tracking features
* Less professional appearance to customers
## Connect Gmail
Go to Settings > Integrations in your Flashquotes dashboard
Find the Google section and click "+ Add account"
Sign in with your business Gmail account
Grant permissions for sending and reading emails
Your Gmail appears in the connected accounts list. You can now send from your business email and see customer replies in Flashquotes.
## Common issues
* **Connection error status**: Click Reconnect to refresh permissions
* **Can't see email activity**: Reconnect with expanded permissions enabled
* **Multiple accounts needed**: Connect additional Gmail accounts as needed for team members
## Best practices
Professional branded email addresses provide the best customer experience
While not as professional, personal Gmail accounts have full functionality
Google Workspace gives you the complete Flashquotes experience. Other providers work for basic quote sending but you'll miss the powerful email management features that make customer communication seamless.
## Next steps
After connecting Gmail:
* [Send your first quote](/contacts/sending-quotes)
* [Set default sending email for each location](/settings/general#default-email)
# Google Integration
Source: https://docs.flashquotes.com/settings/integrations/google
Connect Gmail and Google Calendar to streamline communication and scheduling
Connect your Google account to unlock powerful integrations for email and calendar management.
## What you can do
The Google integration provides these capabilities:
* **Send Email** - Send quotes directly from your Gmail account (all plans)
* **Read Email** (Plus/Pro) - Sync email activity from your contacts
* **Calendar Sync** (Plus/Pro) - Automatically sync bookings to Google Calendar
* **Analytics Tracking** (Pro) - Track form conversions with GA4 or Google Tag Manager
Learn why [Google Workspace/Gmail is strongly recommended](/settings/integrations/email-provider) for the best Flashquotes experience.
## Getting started
Navigate to Settings > Integrations
Find the Google section and click "+ Add account"
Sign in to your Google account and grant the requested permissions
## Feature details
Send quotes from your Gmail account
Sync email activity from your contacts (Plus/Pro)
Sync booked events to Google Calendar (Plus/Pro)
## Analytics tracking (Pro)
Track form conversions with Google Analytics 4 or Google Tag Manager to measure your marketing effectiveness.
Track form conversions directly in GA4
Manage multiple tracking pixels via GTM
## Best practices
1. **Use a business Google Workspace account** - More reliable than personal Gmail for business use
2. **Connect one primary account** - Use your main business email as default
3. **Keep permissions current** - Reconnect promptly if you see disconnection warnings
## Upgrading to Plus
Full Gmail integration and Google Calendar sync require Flashquotes Plus or Pro.
[Learn more about Flashquotes Plus](https://flashquotes.com/pricing)
## Troubleshooting
### Google account disconnected
* Reconnect your account in Settings > Integrations
* You may need to re-grant permissions
* Calendar events and email syncing will resume after reconnection
### Need more help?
* [Gmail sending issues](/settings/integrations/google-gmail-send#troubleshooting)
* [Gmail sync issues](/settings/integrations/google-gmail-read#troubleshooting)
* [Calendar sync issues](/settings/integrations/google-calendar#troubleshooting)
* [GA4 tracking issues](/settings/integrations/google-analytics#troubleshooting)
* [GTM tracking issues](/settings/integrations/google-tag-manager#troubleshooting)
## Next steps
* [Set up Gmail sending](/settings/integrations/google-gmail-send)
* [Enable full Gmail integration](/settings/integrations/google-gmail-read)
* [Configure calendar sync](/settings/integrations/google-calendar)
* [Track form conversions with GA4](/settings/integrations/google-analytics)
* [Set up Google Tag Manager](/settings/integrations/google-tag-manager)
# Google Analytics (GA4)
Source: https://docs.flashquotes.com/settings/integrations/google-analytics
Track lead form conversions with Google Analytics 4
**Pro subscription required.** Analytics tracking is available on the Flashquotes Pro plan. [Learn more about upgrading](https://flashquotes.com/pricing).
Track when leads view your forms, start filling them out, and successfully submit. This data flows directly to Google Analytics 4 so you can measure your marketing effectiveness.
## What gets tracked
Flashquotes automatically sends these events to your GA4 property when visitors interact with your lead intake forms:
| Event | When it fires | What it tells you |
| --------------- | ----------------------- | ------------------------------------------- |
| `form_view` | Form page loads | How many people see your form |
| `form_start` | First field interaction | How many people start filling out your form |
| `generate_lead` | Successful submission | How many leads you captured |
Each event includes:
* **form\_id** - The unique identifier for your form
* **form\_name** - The name you gave your form in Flashquotes
* **UTM parameters** - utm\_source, utm\_medium, utm\_campaign, utm\_term, utm\_content (when present in URL)
The `generate_lead` event also includes:
* **lead\_id** - The Flashquotes contact ID
* **quote\_id** - The associated quote ID (if created)
## Set up GA4 tracking
Your Measurement ID looks like `G-XXXXXXXXXX`. Find it in your Google Analytics account:
1. Go to [Google Analytics](https://analytics.google.com)
2. Click **Admin** (gear icon)
3. Under **Property**, click **Data streams**
4. Select your web stream
5. Copy the **Measurement ID** (starts with `G-`)
[Google's guide to finding your Measurement ID](https://support.google.com/analytics/answer/9539598)
1. Go to **Settings > Integrations**
2. Find the **Google Analytics** card
3. Click **Connect** and paste your Measurement ID
4. Click **Save**
You can also access this setting from **Forms > \[Your Form] > Settings** under the **Tracking & Analytics** section.
1. Open your lead intake form in a new browser tab
2. In Google Analytics, go to **Reports > Realtime**
3. You should see a `form_view` event appear within a few seconds
4. Fill out a test field to trigger `form_start`
5. Submit the form to trigger `generate_lead`
## Using Google Analytics on Wix
Wix embeds your form inside a sandboxed iframe served from a separate Wix domain. Because of that sandbox, your form can't read the visitor's original traffic source or Google Ads click from the page it's embedded on — so GA4 records form events as **`direct`** instead of the campaign or ad that actually drove the visit.
To fix attribution, add this script to your Wix site's header:
```html theme={null}
```
It passes the real traffic source from your page into the embedded form, so events are attributed correctly.
Adding custom code requires a **paid Wix plan with a connected domain**.
In your Wix dashboard, go to **Settings** > **Custom Code**, then click **+ Add Custom Code**.
1. Paste the script above into the code box
2. Under **Add Code to Pages**, choose **All pages**
3. Under **Place Code in**, select **Head**
4. Click **Apply**
Visit your form's page with a test parameter like `?gclid=test123`, then submit a test lead. In GA4 **Reports > Realtime**, confirm the `generate_lead` event shows a source such as `google / cpc` instead of `direct`.
Use a fresh name, email, and phone number on each test — reusing the same details can merge into an existing contact and skip recording the source.
Only Wix needs this script. WordPress, Squarespace, Webflow, and other builders place your form directly on the page, so attribution already works. See [Wix Embed Best Practices](/forms/wix-embeds) for more on Wix's constraints.
## Using UTM parameters
Flashquotes automatically captures UTM parameters from your form URLs and includes them in all events. This lets you track which marketing campaigns drive the most leads.
**Example URL with UTM parameters:**
```
https://yoursite.com/get-quote?utm_source=facebook&utm_medium=paid&utm_campaign=summer_promo
```
These parameters will be included in all three events (form\_view, form\_start, generate\_lead), so you can build reports showing:
* Which sources drive the most form views
* Which campaigns have the best form completion rates
* Which channels generate the most leads
## Build reports in GA4
### Create a conversion funnel
1. In GA4, go to **Explore**
2. Create a new **Funnel exploration**
3. Add steps: form\_view → form\_start → generate\_lead
4. See your form conversion rates
### Track lead sources
1. Go to **Reports > Acquisition > Traffic acquisition**
2. Add a secondary dimension of "Event name"
3. Filter to show only `generate_lead` events
4. See which sources drive the most leads
## Best practices
1. **Test before launching campaigns** - Submit a test lead and verify events appear in GA4 Realtime before spending on ads
2. **Use consistent UTM parameters** - Create a UTM naming convention for your team
3. **Set up GA4 conversions** - Mark `generate_lead` as a conversion event in GA4 for easier reporting
4. **Connect Google Ads** - Link GA4 to Google Ads to import conversions for better ad optimization
## Troubleshooting
**Use Google Tag Assistant for debugging.** [Google Tag Assistant](https://tagassistant.google.com/) is the best tool for verifying your setup. It shows exactly what events are firing, what data they contain, and helps identify issues in real-time. Open Tag Assistant, connect it to your form page, and watch events flow as you interact with your form.
### Events not appearing in GA4
1. **Check Measurement ID format** - Must start with `G-` followed by 6-12 alphanumeric characters
2. **Wait a few minutes** - GA4 can have a slight delay; use Realtime reports for faster verification
3. **Check for ad blockers** - Browser extensions may block GA4 tracking
4. **Verify Pro subscription** - Analytics tracking requires Flashquotes Pro
### Duplicate events
* Each page load should trigger one `form_view`
* If you see duplicates, check that you haven't also added GA4 tracking manually to the page
### UTM parameters not tracking
* UTM parameters must be in the URL when the form loads
* Check that your marketing links include the UTM parameters
* Parameters are case-sensitive
## Next steps
* [Set up Google Tag Manager](/settings/integrations/google-tag-manager) for advanced tracking needs
* [Learn about form embedding](/forms/embed-your-form) to add forms to your website
* [View your contacts](/contacts) to see captured form submissions
# Google Calendar Sync
Source: https://docs.flashquotes.com/settings/integrations/google-calendar
Automatically sync booked events to Google Calendar
Google Calendar synchronization requires Flashquotes Plus or Pro.
Automatically sync your Flashquotes booked events to Google Calendar to maintain a unified view of your schedule.
## What gets synced
**Event details:**
* Event name and description
* Shift start and end time
* Event start and end time
* Event location/venue address
* Links back to Flashquotes event details and brief
**Benefits:**
* See Flashquotes events in Google Calendar
* Automatic updates when you change events
* Share availability with team members by inviting them to the GCal event
* Avoid double-booking with personal events
## Enable calendar sync
Ensure your account has an active Flashquotes Plus or Pro subscription
If your Google account isn't already connected with Calendar permissions:
1. Go to Settings > Integrations
2. Click "Reconnect" next to an existing account
3. Grant the additional permissions
1. In Settings > Integrations, click "Configure" next to Google
2. For each location, select which Google account should receive calendar events
3. Choose which specific calendar events sync to (or use Primary calendar)
4. Choose "None" if you don't want calendar sync for a location
All future booked events will automatically create events in your selected Google Calendar
## Choose a specific calendar
After selecting a calendar sync account, choose which calendar receives events.
1. Go to Settings > Integrations > Configure Google
2. Find the location with calendar sync enabled
3. Click the Calendar dropdown (appears after selecting sync account)
4. Select a calendar or use Primary calendar (default)
What happens next: Events migrate to the new calendar. Events are removed from the old calendar and created in the new one. Migration takes a few minutes.
**Calendar options:**
* **Primary calendar**: Your main Google Calendar
* **Other calendars**: Any calendar you own or manage
You can create and sync to a dedicated "Booked events" calendar which can have it's own color and be shared with your team.
## Auto-invite staff to calendar events
This feature requires [Flashquotes Pro](https://flashquotes.com/pricing).
When you assign staff to an event, they automatically get a Google Calendar invite. Staff can see event details and timing in their own calendar.
**Requirements:**
* [Pro plan](https://flashquotes.com/pricing)
* Google Calendar connected
* Staff need valid email addresses (update in [Staff](/staff))
### Turn on auto-invites
1. Go to Settings > Integrations > Google
2. Find "Auto-invite assigned staff to calendar events"
3. Toggle it on
4. Confirm in the popup
What happens next: When you assign staff to an event, they'll receive a calendar invite at their email address. If you remove them from the event, the invite gets cancelled automatically.
### Turn off auto-invites
Toggle the setting off. Staff will stop receiving automatic calendar invites for new assignments. Existing calendar events won't be affected.
**Common issues:**
* **Staff didn't get invite**: Check their email address in [Staff](/staff). They need a valid email configured.
* **Some staff got invites, others didn't**: Only staff with valid email addresses receive invites. Invalid emails are filtered out automatically.
* **Setting won't toggle on**: This feature requires a [Pro plan](https://flashquotes.com/pricing).
## Choose service time or shift time
Control whether calendar events show just customer-facing service hours or your full commitment including setup and breakdown.
**Where to configure:**
1. Go to Settings > Locations
2. Edit a location
3. Find "Calendar sync timing" setting
4. Choose Service Time or Shift Time
**Service Time:**
* Syncs only the hours customers see you working
* Example: 2:00 PM - 4:00 PM (customer event window)
* Use when you want calendar to show only billable hours
**Shift Time (default):**
* Syncs your full commitment including setup/breakdown
* Example: 1:00 PM - 5:00 PM (with 1hr setup and 1hr breakdown)
* Use when you need to block your entire schedule
What happens next: Future events sync with your selected timing. Existing calendar events update within a few minutes.
Most users prefer Shift Time to accurately block their full schedule and prevent double-booking during setup/breakdown.
## How calendar sync works
**Events are created when:**
* A quote is booked by your customer
* You create a manual booking in Flashquotes
* You copy a booking with events
**Events are updated when:**
* You change booking details (date, time, location)
* Event name or description changes
* Shift times change
**Events are deleted when:**
* You cancel or delete a booking in Flashquotes
* You disconnect a Google account that was syncing to calendar
* You change which Google account syncs calendar for a location
**Event details included:**
* **Title:** Event name
* **Time:** Shift start/end
* **Location:** Event venue address
* **Description:** Event details and link to Flashquotes
* **Source:** Shows "Flashquotes" as the event source
## View sync status and trigger manual sync
You can check calendar sync status and manually trigger syncs directly from Flashquotes.
**Where to find sync status:**
* The Google Calendar icon in the event logistics and calendar event details conveys the status
* If the event is synced, the icon will be solid and will display the sync date on hover
* If the event is **not** synced, the icon will be transparent and you can click on it to trigger a manual sync
If an event shows "Failed" status, try the manual sync button before reconnecting your entire Google account.
## Manage calendar sync
**Change which calendar receives events:**
1. Go to Settings > Integrations > Configure Google
2. Select a different Google account for a location
3. Flashquotes will:
* Remove future events from the old calendar
* Create events in the new calendar for all future bookings
**Disable calendar sync for a location:**
1. Go to Settings > Integrations > Configure Google
2. Select "None" for the location
3. All future events will be removed from Google Calendar for that location
**Disconnect Google Calendar:**
* When you disconnect a Google account, all future calendar events created by Flashquotes are removed
* Past events remain in your calendar but won't receive further updates
Changing calendar sync settings affects all future events for that location. Review which locations use which Google accounts regularly.
## Best practices
1. **Configure calendar per company location** - Link calendars to company locations appropriately
2. **Don't manually edit synced events** - Changes in Google Calendar won't sync back; edit in Flashquotes
3. **Review sync settings regularly** - Ensure the right accounts sync to the right locations
4. **Use one calendar per business unit** - Keep different services or locations in separate calendars if needed
## Troubleshooting
### Calendar events not syncing
* Confirm you have an active Plus or Pro subscription
* Verify "Calendar Sync" permission is granted
* Check that calendar sync is configured for the location in Settings > Integrations > Configure
* Ensure this is a booked event (quotes don't sync)
* Try reconnecting your Google account
### Events not updating
* Verify your Google account is still connected
* Check that you're editing the booking in Flashquotes (not in Google Calendar)
* Allow a few minutes for updates to sync
* Reconnect your account if issues persist
### Events appearing in wrong calendar
* Check location calendar configuration in Settings > Integrations > Configure
* Update the Google account selection for that location
* Events will migrate to the correct calendar
### Events disappeared
* Check if your Google account was disconnected
* Verify calendar sync is still configured for the location
* Reconnect your account to resume syncing
## Next steps
* [Enable full Gmail integration](/settings/integrations/google-gmail-read) to sync customer emails (Plus/Pro)
* [Set up location defaults](/settings/general)
* [Upgrade to Plus](https://flashquotes.com/pricing) if you don't have it yet
# Full Gmail Integration
Source: https://docs.flashquotes.com/settings/integrations/google-gmail-read
Sync email activity from your contacts
Full Gmail integration requires Flashquotes Plus or Pro.
Bring customer email conversations into Flashquotes to see the total context of customer communications within contact activity feeds.
## What gets synced
* Email threads between you and customers
* Replies and responses from customers
* Email timestamps and conversation context
* Automatic activity feed updates
**Where emails appear:**
* Contact activity feeds show all email correspondence with contacts in one place
* You can find the activity feed on the contact details view and easily filter it for email
* Click the email icon on the Contacts page to initiate new emails
## Enable full Gmail integration
Ensure your account has an active Flashquotes Plus or Pro subscription
If you previously connected Gmail for sending only, reconnect to grant read permissions:
1. Go to Settings > Integrations
2. Click "Reconnect" next to your Google account
3. Grant the additional permissions
Flashquotes will begin syncing recent email conversations with your contacts and customers
## How email syncing works
**Automatic monitoring:**
* Flashquotes monitors for new emails from customers
* Checks for new messages every few minutes
**Smart matching:**
* Emails are automatically linked to the correct contact
* Matching uses customer email addresses
**Real-time updates:**
* New email activity appears in activity feeds within minutes
* No manual action required
**Privacy first:**
* Only emails related to your Flashquotes contacts are synced
* Other Gmail conversations remain private
**Workflow deactivation:**
* When a contact replies to an email, active follow-up workflows stop automatically
* Prevents automated emails from sending after contacts engage
* Only affects workflows started before the email response
If you disconnect your Google account, email syncing stops. Existing synced emails remain in activity feeds but no new emails are captured.
## Start new emails directly in Flashquotes
Start email conversations directly from your contact details page.
1. Go to contact details page
2. Click the email icon in the contact header
3. Compose your email using the built-in editor
4. Send from your connected Gmail account
What happens next: Email sends from your Gmail and appears in both Flashquotes activity feed and your Gmail sent folder.
## Best practices
1. **Monitor activity feeds** - Check contact activity feeds regularly for new correspondence
2. **Keep account connected** - Don't disconnect unless necessary
3. **Use one primary account** - Connect the email account you use most for customer communication
4. **Use email icon for follow-ups** - Initiate emails from the Contacts page for quick follow-ups
## Troubleshooting
### Emails not appearing in activity feeds
* Confirm you have an active Plus or Pro subscription
* Verify "Read Email" permission is granted
* Check that the email address matches the contact email exactly
* Allow up to 15 minutes for new emails to sync
* Try reconnecting your Google account
### Old emails not syncing
* Email sync only captures recent conversations automatically
* When viewing the contact details a full email sync will trigger
### Some emails missing
* Verify the email address on the contact matches exactly
* Check that emails aren't in spam or trash
* Ensure the email is from/to a contact email address in Flashquotes
### Sync stopped working
* Check if your Google account is still connected
* Look for disconnection warnings in Settings > Integrations
* Reconnect your account if needed
## Next steps
* [Connect Google Calendar](/settings/integrations/google-calendar) to sync bookings (Plus/Pro)
* [Learn about workflows](/workflows/overview) to automate email responses
* [Upgrade to Plus](https://flashquotes.com/pricing) if you don't have it yet
# Gmail Sending
Source: https://docs.flashquotes.com/settings/integrations/google-gmail-send
Send quotes directly from your Gmail account
Send quotes and communications from your Gmail account to maintain your email history in one place.
## Why use Gmail for sending
Sending from your Gmail account:
* Maintains conversation history in Gmail
* Uses your existing email signature and branding
* Creates more personal connections with contacts
* Supports multiple Gmail accounts per team
## Connect Gmail
Navigate to Settings > Integrations
Find the Google section and click "+ Add account"
Sign in to your Google account and grant permissions
## Send quotes from Gmail
**From quote view:**
1. Open any quote
2. Click "Send Quote"
3. Select your Gmail account from the dropdown
4. Review and send
**Set default sender:**
* Go to Settings > General > Locations
* For each location, select default sending email
* New quotes will use this sender by default
## Manage sending accounts
**View connected accounts:**
* Go to Settings > Integrations
* All connected Google accounts appear in the Google section
**Disconnect an account:**
1. Find the account in Settings > Integrations
2. Click "Disconnect"
3. Confirm removal
Disconnecting an account removes the ability to send from that email. Existing sent emails remain in your Gmail.
## Best practices
1. **Set defaults per location** - Configure each location with the appropriate sending email
2. **Use professional signatures** - Your Gmail signature appears in all sent quotes
3. **Monitor your sent folder** - All Flashquotes emails appear in your Gmail Sent folder
4. **Connect your primary business email** - Use your main business email for most communications
## Troubleshooting
### Email not sending
* Verify your Google account is connected in Settings > Integrations
* Check that "Send Email" permission is enabled
* Ensure your Gmail account isn't over quota
* Try reconnecting your account
### Wrong sender showing
* Check location default email settings
* Verify the correct account is selected when sending
* Update location defaults in Settings > General
### Signature not appearing
* Your Gmail signature is pulled automatically
* Update your signature in Gmail settings
* Reconnect your Google account to refresh
## Next steps
* [Enable full Gmail integration](/settings/integrations/google-gmail-read) to sync customer emails (Plus/Pro)
* [Connect Google Calendar](/settings/integrations/google-calendar) to sync bookings (Plus/Pro)
* [Set up location defaults](/settings/general)
# Google Tag Manager
Source: https://docs.flashquotes.com/settings/integrations/google-tag-manager
Use GTM for advanced analytics tracking on lead forms
**Pro subscription required.** Analytics tracking is available on the Flashquotes Pro plan. [Learn more about upgrading](https://flashquotes.com/pricing).
Google Tag Manager (GTM) lets you manage multiple tracking pixels and analytics tools from one place. Use GTM when you need to track conversions across multiple platforms like Facebook, LinkedIn, or TikTok.
## Why use Google Tag Manager
GTM is ideal when you need to:
* **Track multiple platforms** - Send conversion data to Facebook Pixel, LinkedIn Insight Tag, TikTok Pixel, etc.
* **Use advanced triggers** - Fire tags based on specific form events or custom conditions
* **Manage tracking centrally** - Update all your tracking from one GTM container
* **A/B test tracking** - Experiment with different tracking configurations
If you only need Google Analytics 4 tracking, the simpler [GA4 direct integration](/settings/integrations/google-analytics) may be all you need.
## Events pushed to dataLayer
Flashquotes pushes these events to the GTM dataLayer when visitors interact with your lead intake forms:
| Event | When it fires | What it tells you |
| --------------- | ----------------------- | ------------------------------------------- |
| `form_view` | Form page loads | How many people see your form |
| `form_start` | First field interaction | How many people start filling out your form |
| `generate_lead` | Successful submission | How many leads you captured |
Each event includes this data in the dataLayer:
```javascript theme={null}
{
event: 'form_view', // or 'form_start' or 'generate_lead'
form_id: 'abc123',
form_name: 'Wedding Inquiry Form',
utm_source: 'facebook',
utm_medium: 'paid',
utm_campaign: 'summer_promo',
utm_term: 'wedding photographer',
utm_content: 'video_ad'
}
```
The `generate_lead` event also includes:
* **lead\_id** - The Flashquotes contact ID
* **quote\_id** - The associated quote ID (if created)
## Set up GTM tracking
Your Container ID looks like `GTM-XXXXXXX`. Find it in Google Tag Manager:
1. Go to [Google Tag Manager](https://tagmanager.google.com)
2. Select your container (or create one)
3. Your Container ID appears at the top of the workspace
[Google's guide to finding your Container ID](https://support.google.com/tagmanager/answer/6103696)
1. Go to **Settings > Integrations**
2. Find the **Google Tag Manager** card
3. Click **Connect** and paste your Container ID
4. Click **Save**
You can also access this setting from **Forms > \[Your Form] > Settings** under the **Tracking & Analytics** section.
In your GTM container, create triggers for each Flashquotes event:
1. Go to **Triggers > New**
2. Choose **Custom Event** as the trigger type
3. Set **Event name** to match (e.g., `generate_lead`)
4. Save the trigger
5. Repeat for `form_view` and `form_start`
1. Create or edit your conversion tag (e.g., Facebook Pixel)
2. Under **Triggering**, add your new trigger
3. Save and publish your container
## Example: Facebook Pixel setup
Here's how to track Flashquotes leads as Facebook conversions:
### 1. Create variables for form data
In GTM, go to **Variables > User-Defined Variables > New**:
| Variable Name | Variable Type | Data Layer Variable Name |
| -------------- | ------------------- | ------------------------ |
| FQ - Form ID | Data Layer Variable | `form_id` |
| FQ - Form Name | Data Layer Variable | `form_name` |
| FQ - Lead ID | Data Layer Variable | `lead_id` |
### 2. Create the trigger
1. Go to **Triggers > New**
2. Choose **Custom Event**
3. Set **Event name** to `generate_lead`
4. Name it "FQ - Lead Generated"
### 3. Create the Facebook Pixel tag
1. Go to **Tags > New**
2. Choose **Facebook Pixel** (or Custom HTML if not available)
3. Configure the Lead event with your Pixel ID
4. Add the "FQ - Lead Generated" trigger
5. Save and publish
### 4. Test in Preview mode
1. Click **Preview** in GTM
2. Open your Flashquotes form
3. Submit a test lead
4. Verify the tag fires in GTM's debug panel
## Best practices
1. **Use GTM Preview mode** - Always test new tags before publishing
2. **Name things clearly** - Use prefixes like "FQ -" for Flashquotes-related items
3. **Document your setup** - Note which tags use which triggers
4. **Test conversions end-to-end** - Verify data appears in your ad platforms
5. **Don't double-track** - If using GTM, don't also add GA4 directly in Flashquotes
## Troubleshooting
**Use Google Tag Assistant for debugging.** [Google Tag Assistant](https://tagassistant.google.com/) is the best tool for verifying your setup. It shows exactly what events are firing, what tags are triggered, and what data is being sent. Open Tag Assistant, connect it to your form page, and watch the dataLayer events in real-time as you interact with your form.
### Events not appearing in GTM Preview
1. **Check Container ID format** - Must be `GTM-` followed by 6-10 alphanumeric characters
2. **Refresh the page** - GTM loads on page load
3. **Check for conflicts** - Ensure GTM isn't also loaded by your website
### Tags not firing
1. **Verify trigger setup** - Event names are case-sensitive (`generate_lead` not `Generate_Lead`)
2. **Check trigger conditions** - Make sure there are no extra conditions blocking the trigger
3. **Test in Preview mode** - GTM Preview shows exactly why tags fire or don't fire
### Data not appearing in ad platform
1. **Allow time for sync** - Some platforms take hours to show conversion data
2. **Check pixel/tag setup** - Verify your ad platform tag is configured correctly
3. **Test with platform tools** - Use Facebook Pixel Helper, LinkedIn Insight Tag debugger, etc.
### Using both GA4 and GTM
If you add both GA4 and GTM IDs in Flashquotes:
* Both will receive events
* Make sure you're not sending duplicate data to GA4 (once directly, once via GTM)
* Choose one method: either direct GA4 or GA4 via GTM
## Next steps
* [Set up direct GA4 tracking](/settings/integrations/google-analytics) if you only need Google Analytics
* [Learn about form embedding](/forms/embed-your-form) to add forms to your website
* [View your contacts](/contacts) to see captured form submissions
# Integrations Overview
Source: https://docs.flashquotes.com/settings/integrations/overview
Connect Flashquotes with your favorite business tools
## Overview
Flashquotes integrations allow you to connect with popular business tools and automate your workflows. Available on Pro tier plans and higher, these integrations help streamline your operations and reduce manual data entry.
## Available Integrations
Connect Gmail and Google Calendar to streamline email and scheduling.
Sync invoices and payments with QuickBooks Online for seamless accounting.
Connect with thousands of apps to automate your workflows.
## Integration Benefits
### Financial Management
* Automatic invoice syncing with QuickBooks
* Payment tracking and reconciliation
* Tax rate synchronization
### Communication
* Send quotes from your Gmail account
* Sync email activity from your contacts (Plus/Pro)
* Sync booked events to Google Calendar (Plus/Pro)
### Automation
* Connect with 3000+ apps via Zapier
* Automate repetitive tasks
* Custom workflow creation
## Getting Started
1. [Choose your email service provider](/settings/integrations/email-provider)
2. Connect essential services first:
* Google for email and calendar
* QuickBooks for financial tracking
3. Add automation as needed
4. Test integrations thoroughly
## Best Practices
1. Keep credentials current
2. Monitor integration activity
3. Review permissions regularly
4. Document custom workflows
5. Train team members
## Next Steps
* [Set up QuickBooks](/settings/integrations/quickbooks)
* [Connect Google](/settings/integrations/google)
* [Configure Zapier](/settings/integrations/zapier)
# QuickBooks Integration
Source: https://docs.flashquotes.com/settings/integrations/quickbooks
Sync your Flashquotes financial data with QuickBooks
Connect QuickBooks from Settings > Integrations to automatically sync invoices and payments.
## What it does
The QuickBooks integration automatically syncs your invoices and payments between Flashquotes and QuickBooks Online, streamlining your accounting processes and ensuring accurate financial records.
## Connect QuickBooks
Navigate to Settings > Integrations
Locate the QuickBooks section and click "Connect to QuickBooks"
Sign in to QuickBooks and authorize Flashquotes access
Set up:
* Account mappings
* Tax rates
* Product/service items
* Payment methods
Requires a QuickBooks Online account and Pro tier Flashquotes subscription.
QuickBooks syncing is currently only available for accounts using USD currency in the United States. If your company uses a different currency, QuickBooks integration will not be available.
Verify all mappings before initiating your first sync.
## What syncs
**Invoice sync**:
* Invoice details
* Line items
* Tax calculations
* Customer information
Invoices sync automatically when created or updated in Flashquotes.
**Payment sync**:
* Payment records
* Payment methods
* Transaction dates
* Payment status
* Manual sync for individual payments and refunds
**Deposit sync**:
* Stripe payments: deposits created automatically when Stripe sends the payout to your bank
* Manual payments (cash, check): deposits created immediately when synced
* Aggregate deposits group multiple payments from the same Stripe payout
* Payout trace ID included for bank reconciliation
## How sync works
**Sync behavior**:
* Real-time updates
* Error handling
* Conflict resolution
* Historical data sync
**Customer data**:
* Contact syncing
* Profile matching
* Address updates
* Communication preferences
## Best Practices
1. Review initial sync results
2. Maintain consistent naming
3. Monitor sync status
4. Keep mappings updated
5. Regular reconciliation
## Troubleshooting
**Common issues**:
* Connection errors
* Sync failures
* Data mismatches
* Authorization issues
**Support resources**:
* Documentation
* Support tickets
* Integration status
* Error messages
## Manual payment sync
For granular control, you can manually sync individual payments and refunds from the invoice payment tables. This is useful for:
* Syncing historical payments after connecting QuickBooks
* Handling specific transactions that failed automatic sync
* Controlling the timing of accounting entries
See [Manual Payment Sync](/finance/quickbooks-sync) for step-by-step instructions.
## Next steps
After setting up QuickBooks:
* Test invoice syncing
* Verify payment tracking
* Try manual payment sync
* Monitor sync status
# Zapier Integration
Source: https://docs.flashquotes.com/settings/integrations/zapier
Automate workflows by connecting Flashquotes to thousands of apps
Generate an API key from Settings > Integrations to connect Flashquotes with thousands of apps.
## What it does
The Zapier integration allows you to connect Flashquotes with thousands of other apps and create automated workflows. Available for Pro tier subscribers, this integration helps streamline your operations through custom automations.
## Get your API key
Navigate to Settings > Integrations
Find the Zapier card and click "Generate API key". On the Scale plan, the card is called "API & Zapier" — the same key also works for the full [REST API](/api-reference/introduction).
Copy the generated key for use in Zapier
Go to Zapier.com, search for Flashquotes, and enter your API key
Keep your API key secure and never share it publicly.
You'll need a Zapier account and the Flashquotes Pro plan or higher. The full REST API needs Scale — see [API plan access](/api-reference/introduction#plan-access).
## Available triggers
**Lead triggers**:
* New lead received
* Lead form submitted
* Lead status changes
* Quote generated
**Event triggers**:
* New booking created
* Event status changes
* Timeline updates
* Resource assignments
**Invoice triggers**:
* New invoice created
* Payment received
* Invoice status changes
* Refund processed
## Popular automations
**Ready-to-use workflows**:
* Lead to CRM sync
* Calendar integration
* Team notifications
* Document generation
Start with pre-built Zaps and customize as needed.
**Example automations**:
* Slack notifications for new leads
* Google Calendar event creation
* Custom email sequences
* Task management integration
## Best Practices
1. Test Zaps thoroughly
2. Monitor automation usage
3. Document custom workflows
4. Review error logs regularly
5. Keep triggers organized
## Troubleshooting
**Common issues**:
* Authentication errors
* Trigger failures
* Data mapping issues
* Rate limiting
**Support resources**:
* Zapier documentation
* Flashquotes support
* Integration logs
* Community forums
## Next steps
After setting up Zapier:
* [Review API documentation](/api-reference/introduction)
* Create test automations
* Monitor workflow performance
* Plan scaling strategy
# Managing Team Members
Source: https://docs.flashquotes.com/settings/members
Learn how to invite and manage team members in your Flashquotes workspace
You only need to invite admins to your workspace. Event staff can see
everything they need without a Flashquotes account.
## Inviting New Team Members
### Step 1: Access the Members Page
1. Click your company name in the top-left, then choose **Settings**
2. Select **Members** from the settings menu
### Step 2: Send an Invitation
1. Click the **Invite Member** button in the top right corner
2. In the Invite Member dialog, enter the email address of the person you want to invite. **Be sure the email is tied to a Google account**, since they will need to sign in with Google to join your workspace.
3. **Select a Role**: Choose between:
* **Admin** - Full access to all features and financial data
* **Member** - Full access except for aggregate financial data
4. Click **Send Invitation**
The invited user will receive an email with a unique link to join your company
workspace.
### Step 3: User Acceptance
When a user receives an invitation:
1. They click the invitation link in their email
2. On the Invitation Page, they can:
* Sign in with Google
* Create a new account (if they don't have one)
3. After signing in, they're automatically added to your company workspace with the role you specified
## Team Roles and Permissions
flashquotes has three team roles. The hierarchy is: **Owner > Admin > Member**.
### Owner Role
Every company has exactly one Owner. The Owner has full Admin access, plus:
* Can remove Admins from the team
* Can transfer company ownership to another member
The Owner can't be removed from the team — they must transfer ownership first. You can't assign the Owner role through the role dropdown; ownership only changes via a transfer.
### Admin Role
**Full access to all features including:**
* All booking management features
* All invoice and payment features
* All contact and quote management
* Company settings and configuration
* **Aggregate financial data** (revenue totals, payment statistics, etc.)
* Member management: invite, promote, demote, and remove Members and Admin
* Can view and restore removed members
### Member Role
**Full access to all features except:**
* Aggregate financial data (revenue totals, payment statistics)
* Member management (can't invite, promote, demote, or remove other members)
Members can still see individual invoice amounts and booking details, but they
can't see aggregate financial statistics like total revenue, overdue amounts,
or payment summaries.
### Changing Member Roles
Only Admins and Owners can change member roles. You can't assign the Owner role through this dropdown — use Transfer Ownership instead.
1. Go to **Settings** → **Members**
2. Find the member you want to modify
3. Click the dropdown menu (⋮) next to their name
4. Select **Promote to Admin** or **Demote to Member**
Be careful when promoting members to Admin, as they'll gain access to all
financial data and member management capabilities.
## Transferring Ownership
Only the current Owner can transfer ownership to another member.
1. Go to **Settings** → **Members**
2. Find the member you want to make Owner
3. Click the dropdown menu (⋮) next to their name
4. Select **Transfer Ownership**
5. Type "transfer" to confirm
After the transfer, the selected member becomes Owner and you're demoted to Admin. You can only regain ownership if the new Owner transfers it back to you.
This action is immediate and can't be undone by you.
## Removing Team Members
Admins and Owners can remove Members from the team. Only the Owner can remove Admins. The Owner can't be removed — they must transfer ownership first.
Removed members lose access immediately.
1. Go to **Settings** → **Members**
2. Click the dropdown menu (⋮) next to the member's name
3. Select **Remove from team**
Removed members appear in a **Removed Members** section at the bottom of the page. You can restore a removed member from that section at any time.
If you re-invite a previously removed member, their membership is automatically restored.
## Managing Invitations
### Tracking Invitation Status
* View all pending invitations under the "Invited" section on the Members page
* For pending invitations, click the dropdown menu to resend the invitation.
Invitation links expire after 7 days. If a link expires, simply send a new
invitation.
### Troubleshooting Invitations
If an invited user can't find their invitation:
1. Ask them to check their spam folder
2. Use the "Resend Invitation" option
3. If issues persist, [contact support](mailto:support@flashquotes.com)
After adding team members:
* Help them get familiar with [flashquotes basics](/quickstart)
* Set up their [profile settings](/settings/my-profile)
* Review [company settings](/settings/general) together
# Profile Settings
Source: https://docs.flashquotes.com/settings/my-profile
Manage your email notification preferences
## Overview
Profile settings (found at `/settings/profile`) let you control your email notification preferences. Personal information like name and email are read-only from your account session.
**When you need this:** To customize which email alerts you receive.
## Email Notifications
Steps:
1. Go to Settings > Profile (or visit `/settings/profile`)
2. Review available notification types:
* New bookings
* Payment receipts
* Lead submissions
3. Toggle notifications on/off for each type
4. Changes save automatically
**What happens next:** You'll only receive emails for enabled notification types.
**Common issues:**
* Not receiving notifications: Check spam folder and verify email address
* Too many emails: Disable non-essential notifications
## Personal Information
Your name and email address display on the profile page but cannot be edited. These come from your account session.
**To update personal information:** Contact support or update through your authentication provider.
## Best Practices
1. Enable notifications for critical events (new bookings, payments)
2. Disable non-essential alerts to reduce email volume
3. Review settings when team roles change
## Next Steps
After configuring notifications:
* [Complete company settings](/settings/general)
* [Set up branding](/settings/branding)
* [Configure quote settings](/settings/quotes)
# Plans & Pricing
Source: https://docs.flashquotes.com/settings/plans
Compare Flashquotes subscription plans and discover which features are included at each tier
## Which Plan Is Right for Me?
Flashquotes plans are designed to match your stage of business growth:
For solo operators just getting started.
CRM essentials for growth.
Move faster with automations and integrations.
For organizations seeking advanced control & flexibility.
Want a deeper dive on the 5 levels of mobile event businesses? Listen to [Episode 1 of the Flashquotes Podcast](https://www.youtube.com/watch?v=BWYPvsIUSjE) for the full breakdown.
***
## Plan Pricing
All plans include a 14-day free trial for paid tiers.
| Plan | Monthly | Annual | Savings |
| ----------- | -------- | ------------------------------------ | ------------- |
| **Starter** | Free | FreeBilled annually | – |
| **Plus** | \$59/mo | \$49/moBilled annually | 2 months free |
| **Pro** | \$119/mo | \$99/moBilled annually | 2 months free |
| **Scale** | \$249/mo | \$199/moBilled annually | 2 months free |
Get 2 months free with annual billing. [Upgrade your plan →](https://app.flashquotes.com/settings/plans)
***
## Starter (Free)
The Starter plan includes everything you need to capture leads, create quotes, and manage events.
**Includes 1 service** – Perfect for single-offering operators. Use [pricing rules](/services/pricing) and [add-ons](/services/add-ons) to handle variations like different durations, guest counts, and extras.
* [Lead intake forms](/forms/lead-intake) with real-time availability
* [Instant booking forms](/forms/booking) for direct conversions
* [Auto-drafted quotes](/contacts/autodraft) from form submissions
* [Quote delivery](/contacts/sending-quotes) via email
* [Event scheduling](/events) and management
* [Timeline calculations](/events/timeline) with drive times
* [Event briefs](/events/event-brief) with basic checklists
* [Invoice generation](/invoices) from quotes
* [Payment collection](/finance/payments) via Stripe
* [Service charges](/settings/service-charges) and tax configuration
* Quote Requested workflow trigger
* Quote Sent workflow trigger
* Quote Booked workflow trigger
* Invoice Due workflow trigger
***
## Plus
Everything in Starter, plus powerful integrations and advanced automation tools.
**Includes 5 services** – Room for multiple distinct offerings like espresso bar, hot chocolate cart, and matcha bar. See [Structuring Your Services](/services/structuring-services) for best practices.
Connect your Gmail account for seamless email management:
* [Send emails](/settings/integrations/google-gmail-send) directly from Flashquotes
* [Sync and view](/settings/integrations/google-gmail-read) complete email threads with clients
* Automatic email organization and history
* Never miss important client communications
[Set up Gmail →](/settings/integrations/google)
Keep your calendar in sync automatically:
* Events sync to [Google Calendar](/settings/integrations/google-calendar) in real-time
* Updates propagate automatically when event details change
* Calendar events include links back to Flashquotes
* Share events by inviting team members
[Connect Google Calendar →](/settings/integrations/google-calendar)
Automate communications around your actual event dates:
* **[First Event Start](/workflows/triggers#first-event-start-)**: Send emails before, during, or after the first event begins
* **[Last Event End](/workflows/triggers#last-event-end-)**: Perfect for post-event follow-ups and review requests
* Emails automatically reschedule when event dates change
* Access booking-specific shortcodes
[Learn about triggers →](/workflows/triggers)
Build and reuse checklist templates across events:
* [Save checklists as reusable templates](/settings/tasks#checklist-template-management)
* Apply multiple checklists to a single event brief
* Create templates for different event types
* Share templates across your team
[Manage templates →](/settings/tasks)
Control which add-ons and resources are available per service:
* Link specific add-ons to each service so customers only see relevant options
* Link specific resources to each service for accurate availability tracking
* New items are auto-linked to all existing services on creation
[Learn more →](/services/core-services#service-specific-add-ons)
Add contracts to your booking flow:
* Electronic signature capture with legal acknowledgement
* Dynamic shortcodes for personalized content
* Download and print signed contracts
* Up to 2 contract templates
[Learn about contracts →](/templates/contracts/overview)
Assign add-ons and resources to specific services so they only appear when those services are selected:
* Link [add-ons](/services/add-ons) to the services they belong to
* Link [resources](/resources) to the services that use them
* Keep your booking experience clean and relevant for customers
Assign team members to contacts for clear ownership and accountability:
* Assign an owner when creating or editing a contact
* Filter contacts by owner to manage your pipeline
* Track who's responsible for each client relationship
Create dynamic forms that adapt based on customer responses:
* Set page visibility rules based on earlier answers
* Show or hide form sections conditionally
* Build smarter, more relevant booking experiences
[Learn about form logic →](/forms/conditional-logic)
Create multiple quote templates for different scenarios:
* Design templates for different event types (weddings, corporate, festivals)
* Customize gallery images, testimonials, and add-ons per template
* Quickly apply the right template to any quote
[Learn about quote templates →](/templates/quote-templates)
***
## Pro
Everything in Plus, plus enterprise-grade features for scaling your business.
**Unlimited services** – For multi-concept operations offering coffee, bartending, photo booths, and more.
Let clients receive and book quotes immediately:
* Automated quote calculation from form submissions
* Clients see pricing instantly—no waiting
* Seamless booking experience in one visit
* Configurable price thresholds for high-ticket review
[Set up instant quoting →](/contacts/instant-pricing)
Sync your financial data automatically:
* [Invoices sync to QuickBooks](/finance/quickbooks-sync) when created
* Payments recorded automatically
* [Custom account mappings](/finance/quickbooks-custom-mappings) for proper categorization
* Automatic payout tracking
[Connect QuickBooks →](/settings/integrations/quickbooks)
Build custom automations with thousands of apps:
* Trigger Zaps on new bookings, events, and more
* Send data to CRMs, spreadsheets, and other tools
* Create custom notification workflows
[Set up Zapier →](/settings/integrations/zapier)
Remove Flashquotes branding from client-facing pages:
* Quote views without "Powered by Flashquotes"
* Booking forms without attribution
* Professional, branded client experience
Add tracking to your booking forms for conversion insights:
* Add a GA4 Measurement ID to track form activity
* Add a GTM Container ID for advanced tag management
* Measure lead generation and booking conversion rates
[Set up tracking →](/settings/integrations)
Automatically add staff members to synced Google Calendar events:
* Staff assigned to events are added as calendar attendees
* Team members receive calendar invites automatically
* Keep your crew informed without manual calendar management
Create unlimited quote templates for different scenarios:
* Design templates for different event types (weddings, corporate, festivals)
* Customize gallery images, testimonials, and add-ons per template
* Quickly apply the right template to any quote
[Learn about quote templates →](/templates/quote-templates)
Create unlimited contract templates for your business:
* Different contracts for different event types or services
* Electronic signature capture with legal acknowledgment
* Dynamic shortcodes for personalized content
[Learn about contracts →](/templates/contracts/overview)
***
## Scale
Everything in Pro, plus dynamic pricing tools and enterprise-grade API and support for high-volume operations.
Unlock dynamic pricing, full API access, and VIP priority support.
Adjust pricing based on demand, timing, event type, and more:
* **Surge pricing** for high-demand dates
* **Upcharge last-minute bookings** when lead time is short
* **Charge more (or less) for certain event types** to match how you actually price work
Build custom integrations with our REST API:
* Generate and manage [API keys](/api-reference/introduction)
* Access event, task, invoice, and form data
* Create custom workflows and integrations
* Full programmatic control of your data
[View API documentation →](/api-reference/introduction)
Get faster responses from our support team:
* Priority email support queue
* Dedicated assistance for complex setups
***
## Feature Comparison
| Feature | Starter | Plus | Pro | Scale |
| ------------------------------------------ | :-------: | :-------: | :-------: | :-------: |
| **Services & Pricing** | | | | |
| [Services](/services/structuring-services) | 1 | 5 | Unlimited | Unlimited |
| [Add-ons](/services/add-ons) | Unlimited | Unlimited | Unlimited | Unlimited |
| Dynamic pricing | – | – | – | ✅ |
| Surge pricing | – | – | – | ✅ |
| Last-minute upcharges | – | – | – | ✅ |
| Event-type pricing | – | – | – | ✅ |
| **Lead Capture** | | | | |
| Lead intake forms | ✅ | ✅ | ✅ | ✅ |
| Booking forms | ✅ | ✅ | ✅ | ✅ |
| Conditional form logic | – | ✅ | ✅ | ✅ |
| **Quoting & Invoicing** | | | | |
| Quote creation & delivery | ✅ | ✅ | ✅ | ✅ |
| Quote templates | 1 | Up to 3 | Unlimited | Unlimited |
| Instant quoting | – | – | ✅ | ✅ |
| Invoice generation | ✅ | ✅ | ✅ | ✅ |
| Stripe payments | ✅ | ✅ | ✅ | ✅ |
| Automated travel fee | – | ✅ | ✅ | ✅ |
| **Contracts** | | | | |
| Digital contracts | – | Up to 2 | Unlimited | Unlimited |
| **Event Management** | | | | |
| Event management | ✅ | ✅ | ✅ | ✅ |
| Checklist templates | – | ✅ | ✅ | ✅ |
| Staff auto-invite to calendar | – | – | ✅ | ✅ |
| **CRM** | | | | |
| Contact owners | – | ✅ | ✅ | ✅ |
| **Automation** | | | | |
| Basic workflow triggers | ✅ | ✅ | ✅ | ✅ |
| Advanced workflow triggers | – | ✅ | ✅ | ✅ |
| **Integrations** | | | | |
| Gmail integration | – | ✅ | ✅ | ✅ |
| Google Calendar sync | – | ✅ | ✅ | ✅ |
| Service-specific add-ons | – | ✅ | ✅ | ✅ |
| Service-specific resources | – | ✅ | ✅ | ✅ |
| QuickBooks integration | – | – | ✅ | ✅ |
| Google Analytics & GTM | – | – | ✅ | ✅ |
| Zapier integration | – | – | ✅ | ✅ |
| Full API access | – | – | – | ✅ |
| **Support & Branding** | | | | |
| Remove branding | – | – | ✅ | ✅ |
| VIP support | – | – | – | ✅ |
***
## Platform Fee
Flashquotes charges a platform fee on payments processed through the platform. This fee funds ongoing development, support, and infrastructure.
The fee only applies to online payments made through Flashquotes. If your customer pays you directly (check, cash, wire transfer), no platform fee applies.
### Who Pays the Fee?
You control whether the fee is passed to your customer or absorbed by your business:
* **Pass to customer (default):** The fee is added on top of the invoice total as a separate line item, visible to your customer on the payment page. There is no cost to you.
* **Absorb the fee:** The fee is deducted from your proceeds and is not visible to your customer. Your quoted prices and invoice totals remain unchanged.
#### Quote-Level Override
Override the company default on any individual quote. When editing a quote, change the platform fee setting to pass or absorb for that quote only.
This allows quote and customer-level flexibility on whether you want to show the fee or not.
This only affects that quote and its invoice — your company default stays the same.
International businesses (United Kingdom, Canada & Australia) are required to absorb the platform fee. The fee is deducted from your proceeds and is not displayed to your customer.
The Flashquotes platform fee is a business-to-business charge between your company and Flashquotes for use of the platform.
The platform fee is separate from [service charges](/settings/service-charges), which are business-defined fees you add to quotes (like gratuity or service fees).
### Fees on Customer Refunds
When you issue a full refund to a customer, Stripe processing fees and Flashquotes platform fees are not refunded. These fees remain on the invoice and will show as a Flashquotes fee paid by you (the merchant), since the original customer payment that covered the fee has been refunded.
***
## Frequently Asked Questions
Yes! You can upgrade or downgrade your plan at any time from [Settings → Plans](https://app.flashquotes.com/settings/plans). When upgrading, you'll have immediate access to new features. When downgrading, you'll retain access until the end of your current billing period.
Plus, Pro, and Scale plans include a 14-day free trial. You'll have full access to all features during the trial. If you don't subscribe before the trial ends, you'll be moved to the Starter plan.
No! All Flashquotes plans include unlimited team members at no additional cost.
Yes—annual billing gets you 2 months free compared to monthly.
Each plan includes a set number of [services](/services/structuring-services): Starter includes 1, Plus includes 5, and Pro and Scale include unlimited. A service is a distinct, bookable offering (like "Espresso Bar" or "Hot Chocolate Cart").
Most businesses need only 1-3 services—use [pricing rules](/services/pricing) for variations (duration, guest count) and [add-ons](/services/add-ons) for extras (custom cups, additional hours). All plans include unlimited add-ons.
If you pass the fee to your customer (default for US businesses), it appears as a separate line item on the invoice payment page before they complete payment. It also appears on the receipt after payment for accounting purposes. If you absorb the fee, it is not visible to your customer anywhere.
The fee only applies to online payments processed through Flashquotes. If a customer ends up paying by check or another direct method, no fee applies. Including it on the quote would show a charge that may never be collected, which could cause confusion for you and your customer.
Customers who pay you directly (check, cash, bank transfer) outside of Flashquotes don't pay a fee. The fee only applies to payments processed through the platform.
Yes. In **Settings → Company**, choose to absorb the platform fee. The fee will be deducted from your proceeds instead of being added to your customer's total. You can switch between passing and absorbing at any time.
You can also override this on individual quotes — absorb the fee on a specific quote without changing your company-wide default.
If you pass the fee to customers and want full transparency upfront, consider mentioning it in your communications. For example: "A small platform fee applies to online payments. No fee for check or direct payments."
***
## Ready to Upgrade?
Compare plans and start your free trial in the Flashquotes dashboard
# Quotes
Source: https://docs.flashquotes.com/settings/quotes
Configure default quote settings and presentation options
## Overview
Quote settings control how your quotes are presented to clients and set default parameters for quote generation. These settings help maintain consistency in your pricing and presentation while optimizing conversion rates.
## Quote Defaults
Configure default quote expiration settings that apply to all new quotes. When quotes expire, customers can no longer book them directly - they'll be prompted to request a new quote or contact your company.
### How Quote Expiration Works
When a quote is created, its expiration date is automatically set to whichever comes **first**:
1. **Standard Expiration**: Current date + configured expiration days (default: 14 days)
2. **Event-Based Expiration**: Midnight of the day before the event (in the event location's timezone)
**Example:** If an event is scheduled for October 27 at 2:00 PM MST, the quote will expire on October 26 at 12:00 AM MST. This ensures customers have until the end of the day before the event to book, while giving you time to prepare.
Expired quotes cannot be booked. Customers viewing expired quotes will see options to request a fresh quote or contact you directly.
Set expiration dates that create urgency while giving clients reasonable time to decide. You can extend individual quote expiration dates from the contact details, quote edit, or quote view pages.
## Pricing Rules
Control how instant quotes behave when generated from your lead intake forms.
### Auto-Enroll in Workflow
When enabled, all instant quotes are automatically enrolled in your quote follow-up workflow. This ensures consistent follow-up for every contact without manual intervention.
Combine auto-enrollment with a well-designed [quote follow-up workflow](/workflows) to maximize conversion rates on instant quotes.
### High Ticket Threshold
Set a maximum quote value for instant quoting. When a quote exceeds this threshold, it's routed to manual review instead of being sent automatically.
**How it works:**
* Quotes **at or below** the threshold are sent instantly to the customer
* Quotes **above** the threshold are saved as drafts for your review
* Leave empty to allow instant quotes at any price
The threshold is based on the quote subtotal (before taxes and discounts). Set this value carefully to balance automation with oversight on larger deals.
**Example**: With a \$2,000 threshold:
* \$1,500 quote → Sent instantly to customer
* \$2,000 quote → Sent instantly to customer
* \$2,500 quote → Saved as draft for manual quoting
## Quote Templates
Every Flashquotes company gets one default quote template that is fully customizable with your own gallery images, testimonials, add-ons, hero message, and other visual elements.
Want to create multiple templates for different event types or services? This feature is available on the [Pro plan](/settings/plans).
Learn how to create, customize, and manage quote templates
### Key Template Features
* **Gallery Images**: Showcase your services with high-quality photos
* **Testimonials**: Build trust with customer reviews and quotes
* **Add-ons**: Control which upsells appear on quotes
* **Service Details**: Dynamic text with shortcode support
* **Hero Message**: Customizable introduction message
One template is always set as the default and is automatically applied to new quotes. You can change a quote's template at any time from the Quote Template tab.
## Quote Delivery
Set a custom subject line for all quote emails you send. You can use any shortcode from the Quote Sent workflow to personalize subject lines (like `{{lead.first_name}}` or `{{company.name}}`).
[See all available shortcodes →](/workflows/shortcodes/overview)
**Example Subject Lines:**
* `☕ {{lead.first_name}}, your quote is ready!`
* `✨ {{lead.full_name}}, review your quote from and book online in minutes!`
💡 Including emojis in your subject lines can boost open rates by making emails more visually appealing and less likely to be filtered as spam.
If no custom subject is set, flashquotes will use a default subject line. You can always edit the subject when sending individual quotes.
Set a custom default email body for all quote emails. You can use any shortcode from the Quote Sent workflow to personalize your message (like `{{lead.first_name}}` or `{{company.name}}`).
[See all available shortcodes →](/workflows/shortcodes/overview)
**Example Email Body:**
```
Hi {{lead.first_name}},
Thanks for requesting a quote! I've put together custom pricing for your event.
Click the link below to review details and book online in minutes.
Let me know if you have questions!
```
**Live Preview:**
As you type, the preview shows how your email will look with real contact data. This helps you verify formatting and personalization before saving.
Emoji work great in email bodies! They make messages feel personal and friendly. 😃
You can edit the email body when sending individual quotes if you need custom messaging for specific contacts.
## Best Practices
1. Keep hero messages concise and impactful
2. Add a default hero image to make the quote more engaging
3. Leverage markdown formatting and links in your hero message
## Next Steps
After configuring quote settings:
* [Create and manage quote templates](/templates/quote-templates)
* [Configure add-ons](/services/add-ons)
* [Configure service charges](/settings/service-charges)
* [Set up branding](/settings/branding)
* [Create a test quote](/contacts/quotes)
# Service Charges
Source: https://docs.flashquotes.com/settings/service-charges
Add percentage or flat fees to quotes and invoices
## Creating Service Charges
Navigate to **Settings > Service Charges** and click **Create Service Charge**.
**Required fields:**
* **Name**: e.g., "Service Fee", "Corkage Fee"
* **Type**: Percentage or Flat Amount
* **Value**: Percentage (0-100%) or dollar amount
**Options:**
* **Taxable**: Include in tax calculations
* **Auto-Apply**: Add to all new quotes automatically
Percentage charges calculate from quote subtotal before tax.
## Managing Charges
* Toggle tax and auto-apply settings directly in the table
* Delete charges with the trash icon (doesn't affect existing quotes)
* Name and value cannot be edited after creation
## How It Works
**Calculation order:**
1. Quote subtotal (services + add-ons)
2. Service charges
3. Discounts
4. Tax
5. Final total
**Auto-applied charges** appear on new quotes but can be removed manually. **Manual charges** can be added individually when editing quotes.
## Working with Service Charges
**Adding charges to quotes:**
* Auto-applied charges appear automatically on new quotes
* Add manual charges using the service charges dropdown
* Remove any charge by clicking the trash icon
* Charges apply to all line items except gratuity
**What customers see:**
* Service charges display as separate line items
* Included in quote total calculations
* Visible in the quote presentation
**From quote to invoice:**
* Service charges automatically carry over from quotes
* Adjust amounts during invoice editing if needed
* Appear as line items on customer invoices
* Included in payment calculations
**How taxable charges work:**
* Taxable charges: Included in tax calculations
* Non-taxable charges: Added after tax calculation
* Respects your location-based tax settings
* Shows tax breakdown to customers
## Common Examples
| Use Case | Type | Value | Taxable | Auto-Apply |
| ----------- | ---------- | ----- | ------- | ---------- |
| Gratuity | Percentage | 20% | Yes | Yes |
| Corkage Fee | Flat | \$75 | No | No |
| Service Fee | Percentage | 10% | Yes | Yes |
## Application Rules
**What gets charged:**
* Applies to all line items EXCEPT gratuity
* Percentage charges calculate from the subtotal of applicable items
* Flat charges add a fixed amount regardless of quote value
* When both percentage and flat charges are on a quote, percentage charges are calculated first
**Customer visibility:**
* Shows on quote presentations
* Appears on booking confirmation forms
* Listed as separate line items on invoices
* Included in all total calculations
## Integration
Service charges work with:
* Discounts (applied after charges)
* Tax rates (respects location settings)
* QuickBooks (syncs as line items)
* Invoices (carries through from quotes)
* Quote template (displays in modern interface)
# Supported Countries & Tax IDs
Source: https://docs.flashquotes.com/settings/supported-countries
Learn which countries Flashquotes supports and how to provide your tax ID
## Overview
Flashquotes is currently available for businesses in **four countries**. During signup, your country is detected from your business address. Non-US businesses must provide a valid tax identification number to connect to Stripe and accept payments.
## Supported Countries
| Country | Currency | Tax ID Required? |
| -------------- | -------- | -------------------- |
| United States | USD | No |
| United Kingdom | GBP | Yes — VAT Number |
| Canada | CAD | Yes — GST/HST Number |
| Australia | AUD | Yes — ABN |
Your country, currency, and locale are set automatically based on the business address you enter during onboarding. You can update your currency and locale anytime in **Settings → Company**.
For details on how the Flashquotes platform fee is handled in your country, see [Plans & Pricing → Platform Fee](/settings/plans#platform-fee).
## Tax ID Formats
If your business is in the UK, Canada, or Australia, you must provide a valid tax ID. Flashquotes validates the format before saving.
* **Format:** `GB` followed by 9 or 12 digits
* **Example:** `GB123456789` or `GB123456789012`
* Your VAT number is issued by HMRC. You can find it on your VAT registration certificate or in your HMRC online account.
* **Format:** 9-digit Business Number + `RT` + 4-digit account number
* **Example:** `123456789RT0001`
* Your GST/HST number is issued by the CRA. You can find it on your GST/HST registration confirmation or in your CRA Business Account.
* **Format:** 11 digits (no spaces or dashes)
* **Example:** `12345678901`
* Your ABN is issued by the Australian Business Register. You can look it up at [abr.business.gov.au](https://abr.business.gov.au).
A valid tax ID is required before you can connect to Stripe and accept payments. Make sure to enter it exactly in the format shown above — no spaces, dashes, or extra characters.
## How to Add or Update Your Tax ID
### During signup
When you enter a business address in the UK, Canada, or Australia during onboarding, a tax ID field appears automatically. Enter your tax ID before proceeding.
### From the banner or settings
If your account is missing a tax ID, you will see an amber banner at the top of your dashboard prompting you to add it.
1. Click **Update** in the banner
2. Enter your tax ID in the modal
3. Click **Save**
You can also update your tax ID anytime from **Settings → Company** in the billing information section.
## Unsupported Countries
If your business is located outside the four supported countries, you will see a message during signup that Flashquotes is not yet available in your region.
Want to be notified when Flashquotes expands to your country? Email [support@flashquotes.com](mailto:support@flashquotes.com?subject=Waitlist%20-%20Country%20Expansion) to join the waitlist.
## Next Steps
* [Company Settings](/settings/general) — configure your company details and Stripe connection
* [Payments](/finance/payments) — learn how payments work in Flashquotes
# Tasks
Source: https://docs.flashquotes.com/settings/tasks
Configure task templates and checklist templates for admin tasks and event briefs
## Overview
Task settings allow you to manage templates for both administrative tasks and event brief checklists. These default templates automatically populate when creating new events, ensuring consistency in your operations.
## Default Task Templates
Configure administrative task templates:
* Pre-event preparations
* Client communications
* Resource management
* Post-event follow-ups
Create comprehensive task lists to ensure nothing is overlooked during event preparation.
Apply your default admin task templates to all upcoming events:
Go to Settings → Tasks → Admin Default Tasks. Click the menu icon (three dots) and select "Apply to events".
The system shows how many upcoming events will be updated. Only events with event briefs are included.
Click "Add tasks to events" to apply all admin task templates from your default checklist to the listed events.
After processing, you'll see how many events were updated and how many new tasks were created. Click "Done" to close.
Existing tasks are never duplicated. The system only adds tasks that don't already exist for each event.
You cannot cancel the update once it starts processing. Make sure you want to apply tasks to all listed events before confirming.
Configure default checklist templates:
* Create templates of your most standard checklist tasks
* Organize tasks by event brief sections
* Default checklist auto-applied to new events
## Markdown Support
Use Markdown to enhance task descriptions:
```markdown theme={null}
- Create links: [Gallery](https://example.com/gallery)
- Add emphasis: **Important** or *Note*
- Create lists: 1. First 2. Second
- Add headings: # Main Point
```
Markdown formatting helps create clear, structured task instructions.
Add useful links in tasks using markdown formatting:
* Equipment manuals
* Setup guides
* Training videos
* Reference documents
## Task Organization
Organize tasks by event phase:
* Prep and Loading
* Travel to Event
* Setup
* Service
* Post-Event Cleanup
* Return and Unload
Control task sequence:
* Set priority levels
* Arrange logical flow
* Group related tasks
* Manage dependencies
## Checklist Template Management
Save successful checklists as reusable templates:
1. Complete an event with a well-organized checklist
2. Navigate to the Event Brief tab
3. Select the checklist you want to save
4. Click "Checklist options" → "Save as template"
5. Enter a descriptive name for your template
Use specific names like "Lead team member checklist" or "Premium bar checklist" to make templates easy to identify.
Templates benefit your entire team:
* All team members can access company templates
* Standardize procedures across events - Maintain consistency in service quality
* Share best practices organization-wide
Templates are automatically available to all team members when creating new
event checklists.
Keep your template library organized:
* Regularly review template effectiveness
* Remove outdated or unused templates
* Create new updated templates based on operational changes
Deleting a template doesn't affect checklists already created from that template.
## Best Practices
### Task Creation
1. Create clear, actionable tasks
2. Use consistent formatting
3. Keep instructions concise
4. Review and update regularly
5. Maintain logical task order
### Template Management
6. Use descriptive template names
7. Regularly audit and clean up templates
8. Test templates with real events before company-wide rollout
9. Gather feedback from staff on template effectiveness
10. Create templates for different event types and sizes
## Next Steps
After configuring tasks and templates:
* [Create event briefs with checklists](/events/event-brief)
* [Set up timeline defaults](/events/timeline)
* Test task templates with upcoming events
* Train team on checklist procedures
* Gather feedback and iterate on templates
# Staff
Source: https://docs.flashquotes.com/staff
Learn how to manage your team members in Flashquotes
## Overview
Flashquotes provides tools for managing your staff members, enabling team coordination and event assignments. Staff members are used for event assignments and can access event briefs, but they do not have login access to the Flashquotes system.
**Staff vs Team Members**: Staff members are used for event assignments and
can access event briefs. To grant login access to your Flashquotes account,
invite team members through the [Members](/settings/members) section instead.
## Staff Management
### Adding Staff Members
**[Pro feature](https://flashquotes.com/pricing):** Add valid email addresses to staff profiles to automatically send Google Calendar invites when they're assigned to events. [Learn more about auto-invite staff →](/settings/integrations/google-calendar#auto-invite-staff-to-calendar-events)
To add a new staff member:
1. Go to **Staff** in the sidebar
2. Click `Add Staff` in the top right
3. Enter required information:
* First name
* Last name
* Email
* Phone number
* Status
* Location
For multi-city operations, staff location determines their availability for specific city events.
Current staff features include:
* Direct calling between team members via event brief
* Basic contact management
* Location-based availability
* Event brief access (no login required)
Additional staff-facing tools are planned for future updates.
## Best Practices
1. Keep staff contact information current
2. Assign appropriate locations for multi-location operations
3. Update availability status regularly
4. Ensure proper city assignments for multi-location operations
## Next Steps
After setting up staff:
* [Manage events](/events)
* [Configure event briefs](/events/event-brief)
* Review staff assignments
* Monitor team coordination
# Contract Editor
Source: https://docs.flashquotes.com/templates/contracts/editor
Build professional contracts with the rich text editor
## Overview
The contract editor provides a rich text toolbar for creating professional contracts with dynamic content. Use headers, lists, and signature blocks to build clear, well-organized contracts.
## Editor Toolbar
The toolbar includes text formatting, structural elements, and special contract features.
### Text Formatting
Format text with standard controls:
* **Bold** and *Italic* text
* Underline and strikethrough
* Links to external resources or policies
* Text alignment (left, center, right)
* Line dividers to separate sections
### Headers
Use headers to organize your contract into clear sections. Headers create visual hierarchy and make contracts easier to scan.
**Common sections:**
* Services Provided
* Payment Terms
* Cancellation Policy
* Liability and Insurance
* Terms and Conditions
### Lists
**Bullet lists** work well for:
* Terms and conditions
* Included services
* Customer responsibilities
**Numbered lists** work well for:
* Sequential steps
* Ordered clauses
* Priority items
### Signature Block
The signature block is where customers sign electronically. Click the signature icon in the toolbar to insert one anywhere in your contract.
**What signature blocks show:**
* Signer name (entered by customer)
* Electronic signature (adopted style)
* Date signed (automatic timestamp)
Customers click the signature block to open a modal where they enter their name, initials, and email. They acknowledge that electronic signatures are legally binding. Multiple signature blocks are supported if needed.
All contracts must have at least one signature block to be used successfully in the booking flow.
### Page Breaks
Insert page breaks to control where pages break when printed or downloaded as PDF. Page breaks are hidden when viewing on screen but honored in PDF and print output.
**When to use page breaks:**
* Before major sections
* To keep related content together
* To start signature blocks on a clean page
## Using Shortcodes
Insert shortcodes to personalize contracts with customer and quote data. Shortcodes appear as highlighted tags in the editor and automatically populate when customers view the contract.
**Example:** `{{lead.full_name}}` becomes "John Smith" in the signed contract.
[Learn about all available shortcodes →](/templates/contracts/shortcodes)
## Preview Your Contract
Click **Preview** to see how your contract will appear to customers. In preview mode, you can select a recent quote to see exactly how the contract would be presented for that specific quote, with all shortcodes populated with real data. This helps you verify formatting and content before assigning the contract to quotes.
## Tips for Effective Contracts
Use simple, direct language. Avoid legal jargon when plain English works better. Your customers should understand what they're signing.
Break your contract into logical sections with clear headers. This makes it easier for customers to find specific terms and for you to update sections later.
Put the signature block after all terms and conditions. Customers should read everything before signing.
Always preview your contract before using it. Check that shortcodes render correctly and the layout looks professional.
Many customers will sign contracts on their phones. Keep paragraphs short and avoid wide tables or images.
## Common Contract Structures
**Structure for service-based businesses:**
1. **Introduction** - Brief statement of agreement
2. **Services Provided** - What you'll deliver
3. **Payment Terms** - When and how much
4. **Cancellation Policy** - Refund and cancellation rules
5. **Liability** - Limits on responsibility
6. **Signatures** - Electronic signature block
**Structure for event businesses:**
1. **Event Details** - Date, time, location (use shortcodes)
2. **Services Included** - What's provided
3. **Client Responsibilities** - Venue access, permits, etc.
4. **Payment Schedule** - Deposit and balance terms
5. **Changes and Cancellations** - How changes are handled
6. **Force Majeure** - Uncontrollable circumstances
7. **Signatures** - Electronic signature block
**Structure for equipment rental:**
1. **Rental Items** - What's being rented
2. **Rental Period** - Pickup and return times
3. **Fees and Charges** - Rental fee, damage fees, late fees
4. **Care and Responsibility** - How to handle equipment
5. **Damage and Loss** - Customer liability
6. **Return Requirements** - Condition expectations
7. **Signatures** - Electronic signature block
## Next Steps
Insert dynamic customer and event data
Add contracts to the booking flow
# Contracts
Source: https://docs.flashquotes.com/templates/contracts/overview
Add digital contracts to your booking flow with electronic signatures
## Overview
Habe a contract signed before customers pay. Contracts are fully digital with electronic signatures, making the process fast for customers and secure for you.
Contracts require a [Plus or Pro plan](/settings/plans). Plus subscribers can create up to 2 contract templates. Pro subscribers get unlimited templates.
Build professional contracts with the rich text editor
Personalize contracts with dynamic customer data
See what customers experience when signing
## How Contracts Work
Customers sign contracts during the booking flow, after filling out details but before payment. Once all signatures are complete, they proceed to payment or booking if no payment is required to book. The signed contract is saved and available for both you and your customer.
## Creating a Contract Template
1. Go to **Templates** in the sidebar, then open the **Contracts** tab
2. Click **New Contract**
3. Give your contract a name
4. Use the rich text editor to write your contract
5. Add signature blocks where customers should sign
6. Save your template
[Learn more about the contract editor →](/templates/contracts/editor)
## Assigning a Contract to a Quote
Add contracts to quotes in the Booking Flow section of the quote editor. Select a contract from the dropdown or create a new one.
1. Open a quote
2. Scroll to **Booking Flow**
3. Click the Contract dropdown
4. Select a contract template
## Setting a Default Contract
Set a default contract to automatically assign it to new quotes.
1. Open any quote
2. Go to **Booking Flow**
3. Click the Contract dropdown
4. Click **Edit** next to a contract
5. Toggle **Set as default**
## The Signing Experience
Customers review and sign contracts after filling out event details but before payment and booking. Here's what they see:
1. Contract displays in full with all personalized details
2. Signature blocks show where they need to sign
3. They click a signature block to begin signing
4. They enter their name, initials, and email
5. They acknowledge electronic signatures are legally binding
6. Once all signatures complete, a **Finish** button appears
7. They click Finish to fully execute the contract and proceed to the next step
## After Signing
The signed contract is saved with signature data and timestamp. Both you and your customer can download or print it anytime from the booking details page.
## Next Steps
Build contracts with formatting and signature blocks
Insert dynamic customer and quote data
Configure the booking experience
# Contract Shortcodes
Source: https://docs.flashquotes.com/templates/contracts/shortcodes
Use dynamic shortcodes to personalize your contracts
## Overview
Shortcodes automatically insert quote and contact information into your contracts. They ensure accurate, personalized contracts without manual data entry.
Shortcodes are formatted as `{{entity.attribute}}` and appear as highlighted tags in the editor.
## Available Shortcodes
Contracts support the same shortcodes available in [workflow emails](/workflows/shortcodes/overview) for the Quote Sent trigger.
### Contact Information
| Shortcode | Description | Example |
| ----------------------- | ----------------------- | ------------------------------------------- |
| `{{lead.first_name}}` | Contact's first name | John |
| `{{lead.last_name}}` | Contact's last name | Doe |
| `{{lead.full_name}}` | Contact's full name | John Doe |
| `{{lead.email}}` | Contact's email address | [john@example.com](mailto:john@example.com) |
| `{{lead.company_name}}` | Contact's company name | Acme Inc |
| `{{lead.phone}}` | Contact's phone number | +1 234-567-890 |
| `{{lead.city}}` | Contact's city | New York |
### Company Information
| Shortcode | Description | Example |
| --------------------------- | ------------------ | ------------------------------------------------- |
| `{{company.name}}` | Your company name | Bean Scene Coffee |
| `{{company.contact_email}}` | Your contact email | [hello@beanscene.com](mailto:hello@beanscene.com) |
| `{{company.contact_phone}}` | Your contact phone | +1 234-567-890 |
### Quote Information
| Shortcode | Description | Example |
| ---------------------------------------- | ---------------------------------------------------- | ------------------------- |
| `{{quote.event_start_date}}` | Event start date | May 1, 2025 |
| `{{quote.event_start_time}}` | Event start time | 10:00 AM |
| `{{quote.event_end_date}}` | Event end date | May 2, 2025 |
| `{{quote.event_end_time}}` | Event end time | 10:00 PM |
| `{{quote.event_address}}` | Event location | 123 Main St, Anytown, USA |
| `{{quote.guest_count}}` | Number of guests | 150 |
| `{{quote.number_of_days}}` | Number of days | 2 |
| `{{quote.number_of_staff}}` | Number of staff | 3 |
| `{{quote.service_duration_hours}}` | Total service duration across all days | 8 |
| `{{quote.daily_service_duration_hours}}` | Average service duration per day (rounded to 15 min) | 4 |
## Using Shortcodes
1. Position your cursor where you want the shortcode
2. Type the shortcode exactly as shown (case-sensitive)
3. The shortcode highlights automatically when recognized
4. Preview your contract to verify shortcodes render correctly
Shortcodes are case-sensitive. Use exactly as shown in the tables above.
## Common Use Cases
Identify the parties entering the agreement:
```
This agreement is made between {{company.name}} ("Service Provider")
and {{lead.full_name}} ("Client") on this date.
```
**Renders as:**
"This agreement is made between Bean Scene Coffee ("Service Provider") and John Smith ("Client") on this date."
Reference specific event dates and times:
```
Services will be provided on {{quote.event_start_date}} from
{{quote.event_start_time}} to {{quote.event_end_time}} at
{{quote.event_address}}.
```
**Renders as:**
"Services will be provided on May 1, 2025 from 10:00 AM to 4:00 PM at 123 Main St, Anytown, USA."
Describe the scope of services:
```
Service Provider will provide coffee catering services for
{{quote.guest_count}} guests with {{quote.number_of_staff}} staff
members for {{quote.service_duration_hours}} hours.
```
**Renders as:**
"Service Provider will provide coffee catering services for 150 guests with 3 staff members for 4 hours."
Include contact details for both parties:
```
Client Contact: {{lead.full_name}}
Email: {{lead.email}}
Phone: {{lead.phone}}
Service Provider Contact: {{company.name}}
Email: {{company.contact_email}}
Phone: {{company.contact_phone}}
```
## Sample Contract with Shortcodes
Here's a basic service agreement structure using shortcodes:
```
SERVICE AGREEMENT
This Service Agreement ("Agreement") is entered into between
{{company.name}} ("Service Provider") and {{lead.full_name}}
("Client") for services to be provided on {{quote.event_start_date}}.
EVENT DETAILS
Date: {{quote.event_start_date}}
Time: {{quote.event_start_time}} to {{quote.event_end_time}}
Location: {{quote.event_address}}
Guest Count: {{quote.guest_count}}
SERVICES PROVIDED
Service Provider will provide coffee catering services including
{{quote.number_of_staff}} trained staff members for
{{quote.service_duration_hours}} hours of service.
PAYMENT TERMS
Client agrees to pay the total amount specified in the quote.
Payment terms and schedule are outlined in the booking confirmation.
CANCELLATION POLICY
[Your cancellation terms here]
CONTACT INFORMATION
Client: {{lead.full_name}}
Email: {{lead.email}}
Phone: {{lead.phone}}
Service Provider: {{company.name}}
Email: {{company.contact_email}}
Phone: {{company.contact_phone}}
[Add signature block here]
```
## Shortcode Best Practices
Use the preview feature to verify shortcodes render correctly before assigning the contract to quotes.
Use `{{lead.full_name}}` instead of `{{lead.first_name}}` in legal text and signature sections.
Use `{{quote.event_address}}` for the full address rather than just city.
Include both `{{quote.event_start_time}}` and `{{quote.event_end_time}}` to clarify the service window.
Some shortcodes may be empty if that information wasn't collected. Test with various quote types to ensure your contract reads well even with missing optional fields.
## Troubleshooting
* Check spelling and capitalization (they're case-sensitive)
* Ensure you have both opening `{{` and closing `}}`
* Verify you're using a valid shortcode from the tables above
* The shortcode may not be recognized - check the spelling
* Some fields may be empty if data wasn't collected
* Verify you're using quote-level shortcodes (contracts don't support booking-level shortcodes)
Contracts support the same shortcodes as Quote Sent workflow emails. Check the [workflow shortcodes documentation](/workflows/shortcodes/overview) for the complete list.
## Next Steps
Build and format your contract template
See all available shortcodes in detail
# Quote Templates
Source: https://docs.flashquotes.com/templates/quote-templates
Create reusable quote designs for consistent branding across all your quotes
## Overview
Quote templates allow you to create reusable designs for your quotes, making it easy to maintain consistent branding and presentation across all your quotes.
Every company gets one default quote template that is fully customizable. Creating multiple templates for different event types or services requires a [Pro plan](/settings/plans).
Design multiple templates for different event types or services
Configure gallery images, testimonials, add-ons, and more
Quickly assign templates to any quote
Choose a default template for new quotes
## Creating a Quote Template
All plans include one default quote template. To create additional templates, upgrade to [Pro](/settings/plans).
You can create a new quote template in two ways:
### From the Templates Page
Go to **Templates** in the sidebar. Quotes is the first tab.
Click the **Create Template** button in the top right.
You'll be taken to the template editor where you can customize your new template.
### From a Quote Page
Open any quote detail page.
Click on the **Quote Template** tab.
In the template selector dropdown, click **Create new template**.
You'll be redirected to the template editor to customize your new template.
When you create a template, it starts with default settings. You can then customize it with your own images, testimonials, add-ons, and other elements.
## Editing a Quote Template
To edit an existing template:
Go to **Templates** in the sidebar.
Click on the template card you want to edit.
Use the template editor to customize gallery images, testimonials, add-ons, and other settings.
The template editor provides a live preview of how your quote will look with the current template settings. You can toggle between desktop and mobile views to see how your template appears on different devices.
### Editing the Template Name
1. In the template editor, click on the template name at the top of the page
2. Type the new name
3. Press **Enter** or click the checkmark to save, or **Escape** to cancel
The template name is saved automatically.
## What You Can Edit on Templates
Add up to multiple images that will be displayed in a gallery on your quote page. These images help showcase your services, products, or past events.
* **Adding Images**: Click on an empty image slot in the gallery section, then select an image from your image library
* **Replacing Images**: Click on an existing image slot to replace it with a different image
* **Removing Images**: Click the remove button on any image to remove it from the gallery
* **Reordering**: Images are displayed in the order they appear in your template settings
Use high-quality images at 1200×900px (4:3 ratio) for best results. Include a mix of service results, your team in action, and equipment shots.
Customize the service description text that appears on your quotes. You can add multiple lines of text, and each line supports Handlebars template variables to dynamically insert quote-specific information.
* **Adding Lines**: Click the "Add line" button to add a new service detail line
* **Editing Lines**: Click on any existing line to edit its text
* **Removing Lines**: Click the remove button next to any line to delete it
* **Reordering**: Drag and drop lines to change their display order
**Available Shortcodes:**
* `{{quote.guest_count}}` - Number of guests
* `{{quote.staff_count}}` - Number of staff
* `{{quote.service_duration_hours}}` - Total service duration across all days
* `{{quote.daily_service_duration_hours}}` - Average service duration per day
* `{{quote.event_address}}` - Event location
Configure how reviews appear on your quotes to build trust with potential customers.
* **Show/Hide Reviews**: Toggle whether to display your company's review rating and count
* **Rating Value**: Set your company's average rating (typically from Google Business Profile)
* **Rating Count**: Set the total number of reviews
Add customer testimonials that will be displayed on your quotes.
* **Adding Testimonials**: Click "Add testimonial" to create a new testimonial with customer name and quote text
* **Editing Testimonials**: Click the edit button on any testimonial to modify it
* **Removing Testimonials**: Click the delete button to remove a testimonial
* **Reordering**: Drag and drop testimonials to change their display order
Add 3-5 compelling testimonials for best results. Use specific, detailed testimonials that mention results.
Control which add-ons are displayed on quotes using this template.
* **Enabling Add-ons**: Toggle add-ons on or off to include or exclude them from quotes
* **Reordering**: Drag and drop enabled add-ons to change their display order
* **Creating New Add-ons**: Click "Create add-on" to add a new add-on to your company's add-on library
Add-ons configured here are the default for this template. You can still customize add-ons for individual quotes.
The hero message is a customizable text message that appears prominently at the top of your quote. You can edit this directly in the template editor to create a compelling introduction for your quotes.
## Assigning a Template to a Quote
You can change which template is assigned to a quote at any time:
Open the quote detail page for the quote you want to update.
Click on the **Quote Template** tab.
In the template selector dropdown at the top, select the template you want to use.
The quote will automatically update to use the selected template.
The template selector shows:
* All available templates for your company
* Which template is currently assigned (marked with a checkmark)
* Which template is set as the default (marked with a star icon)
* An option to create a new template
When you change a quote's template, the quote immediately reflects the new template's settings, including gallery images, testimonials, add-ons, and other visual elements.
## Managing Templates
### Viewing All Templates
Go to **Templates** in the sidebar to see all your quote templates. Each template card shows:
* A thumbnail preview (using the first gallery image, if available)
* The template name
* How many quotes are currently using the template
* When the template was last updated
* Whether it's set as the default template
### Setting a Default Template
The default template is automatically applied to new quotes. To set a template as default:
**From the Templates Page:**
1. Go to **Templates** in the sidebar
2. Click the three-dot menu (⋮) on the template card
3. Select **Set as default**
**From the Template Editor:**
1. Click the three-dot menu in the top right
2. Select **Set as default**
Only one template can be the default at a time. Setting a new default automatically removes the default status from the previous default template.
### Duplicating a Template
To create a copy of an existing template:
Go to **Templates** in the sidebar.
Click the three-dot menu (⋮) on the template you want to duplicate.
Select **Duplicate**.
Enter a name for the new template.
Click **Duplicate Template**.
The new template will be an exact copy of the original, including all gallery images, testimonials, add-ons, and other settings. You can then edit the duplicate independently.
### Deleting a Template
To delete a template:
1. Go to **Templates** in the sidebar
2. Click the three-dot menu (⋮) on the template you want to delete
3. Select **Delete**
4. Confirm the deletion
You cannot delete the default template. You must set another template as default first.
Deleting a template does not affect existing quotes that were created using that template. Those quotes will continue to display with the template settings they had when they were created.
## Default Templates
Every company has one default template. The default template is:
* Automatically applied to new quotes when they're created
* Marked with a star icon and "Default" badge
* Protected from deletion (you must set another template as default first)
When you create your first template, it automatically becomes the default. You can change the default template at any time, and only one template can be the default at once.
## Tips for Using Templates
Creating multiple templates requires a [Pro plan](/settings/plans).
Consider creating different templates for different types of events or services. For example:
* "Wedding Package" with romantic imagery and wedding-focused testimonials
* "Corporate Event" with professional photos and business testimonials
* "Coffee Service" with product-focused images
Give your templates clear, descriptive names so you can easily identify which one to use for each quote. Good examples:
* "Premium Wedding Package"
* "Corporate Catering"
* "Festival & Large Events"
Always preview your templates in mobile view to ensure they look good on all devices. Many customers will view quotes on their phones.
Regularly review and update your templates to ensure they reflect your current branding and offerings. Update testimonials and images seasonally.
Add testimonials that are relevant to the type of quote you're sending. Wedding testimonials for wedding templates, corporate testimonials for business templates.
## Frequently Asked Questions
Yes, you can edit templates at any time. However, changes to a template only affect new quotes that use it. Existing quotes retain the template settings they had when they were created.
Existing quotes are not affected. They will continue to display with the template settings they had when they were created.
Creating multiple templates is a Pro feature. All plans include one default template that you can fully customize. Pro users can create unlimited templates for different event types, service packages, or branding variations. [Upgrade to Pro](/settings/plans)
On the quote detail page, go to the **Quote Template** tab. The currently selected template will be shown in the template selector dropdown.
Templates are shared across all quotes. If you need quote-specific customizations, you can create a new template or duplicate an existing one and modify it for that specific use case.
## Next Steps
Learn how to create and send quotes to leads
Set up add-ons to include in your templates
Configure default quote settings and delivery options
Learn best practices for sending quotes to customers
# Troubleshooting & FAQs
Source: https://docs.flashquotes.com/troubleshooting
Common issues and frequently asked questions
## Frequently Asked Questions
99% of the time, this issue occurs because your Stripe account is not properly connected or is on hold pending additional documentation.
**Immediate Solution:**
1. Go to **Settings → Company** in your Flashquotes dashboard
2. Check if your Stripe account says "Connected"
3. If it shows "Connect" or "Finish setting up", your Stripe account is not ready to receive payments
You must complete your Stripe account setup to use Flashquotes' payment
features.
**Temporary Workaround:**
If you need to accept bookings immediately while resolving Stripe issues:
1. Change your quote's payment terms to not require a deposit
2. Use "Invoice Only" [payment terms](/contacts/booking-flow) so payment isn't required at booking
3. This allows customers to book without immediate payment
Even with this workaround, you'll still need to resolve your Stripe account
issues to process invoice payments.
**Common Stripe Account Issues:**
* Incomplete verification
* Missing business documentation
* Account on hold for compliance review
* Incorrect bank account information
For more help with Stripe setup, visit [Settings → Integrations](/settings/integrations/overview).
Our general recommendation is to add an acknowledgement type question to your booking form.
**Implementation Steps:**
1. Add an acknowledgement question to your booking form
2. Word it something like: "I acknowledge that by completing this booking form I agree to the service terms and conditions of \[Company Name]"
3. Use a markdown hyperlink to link to your service contract on your web page
**Example:**
```
I acknowledge that by completing this booking form I agree to the
[service terms and conditions](https://yourwebsite.com/terms) of Company X.
```
This approach ensures customers explicitly agree to your terms before booking, providing legal protection while maintaining a smooth booking experience.
For more information on customizing booking forms, see [Forms → Booking](/forms/booking).
Wix has unique technical constraints that affect how iframe embeds display on mobile devices, particularly a 320px width limit and sandboxed rendering.
**Recommended Solution:**
Use a hybrid approach - embed the form for desktop users, but on mobile, use a button that links to your form's hosted Share Link page.
**Implementation:**
1. Create a [Share Link](/forms/share-links) in your Flashquotes dashboard
2. In Wix's mobile editor, hide the HTML iframe element
3. Add a button like "Get Custom Pricing" or "Request Quote"
4. Link the button to your Share Link URL
This ensures mobile users get the full, responsive form experience without Wix's display constraints.
**If you prefer to embed on mobile:**
Follow the mobile optimization steps in our [Wix Embed Best Practices](/forms/wix-embeds) guide, including using fixed dimensions and testing on real devices.
For the best mobile conversion rates, we strongly recommend using Share Links for Wix mobile users instead of embedded iframes.
***
## More FAQs
Have a question that's not answered here? Contact our support team at [support@flashquotes.com](mailto:support@flashquotes.com) or use the chat widget in the bottom right corner.
# Overview
Source: https://docs.flashquotes.com/workflows/overview
Learn how to use Workflows in Flashquotes to enhance contact follow-up and engagement
## What are Workflows?
Workflows automate contact communication in Flashquotes with intelligent email sequences. The platform offers five workflow triggers: Quote Requested workflows that engage contacts immediately after form submission, Quote Sent workflows that follow up after you send quotes, Quote Booked workflows that automate post-booking communications, and event-based triggers (First Event Start and Last Event End) that automate communications around actual event dates.
## Available Features
* **Quote Requested Workflows**: Automatically engage contacts the moment they submit your lead intake form
* **Quote Sent Workflows**: Customizable email sequence for quote follow-ups — create multiple workflows and choose which one to use when sending each quote
* **Quote Booked Workflows**: Automate post-booking communications when a quote is booked
* **First Event Start Workflows**: Time-sensitive communications before, during, or after the first event begins
* **Last Event End Workflows**: Post-event follow-ups and re-engagement campaigns after the final event concludes
* **Flexible Workflow Management**: Add, edit, or delete workflow steps to match your sales process
* **Automated Timing**: Configure follow-up intervals optimized for your business
* **Automatic Rescheduling**: Event-based workflows reschedule when event dates change
* **Dynamic Content**: Shortcodes automatically insert quote, contact, and booking details
* **Email Templates**: Pre-built templates for Quote Sent workflows, fully customizable for others
* **Gmail Integration**: Choose which connected Gmail account sends workflow emails
* **Multiple Workflows per Trigger**: Create multiple workflows for the same trigger and set a default
* **Resume Capability**: Restart stopped workflows when contacts re-engage
## How It Works
**Quote Requested Workflows:**
1. Create a workflow with the Quote Requested trigger
2. Add custom email steps for initial contact engagement
3. Publish the workflow
4. Contacts are automatically enrolled when they submit your lead intake form
**Quote Sent Workflows:**
1. When sending a quote, toggle "Enroll in workflow" to activate the sequence
2. Select which workflow to use from the dropdown (the default is pre-selected)
3. Contacts automatically receive follow-up emails based on the selected workflow
4. Each email uses customizable templates with your quote details
## What's Included
**Quote Requested workflows** help you:
* Acknowledge quote requests immediately
* Build trust while preparing quotes
* Set expectations about your process
* Share your company story early
**Quote Sent workflows** include:
* Welcome email (immediate)
* Follow-up reminders (scheduled intervals)
* Booking encouragement messages
* Final opportunity emails
**Quote Booked workflows** help you:
* Send booking confirmation details
* Share next steps and preparation info
* Kick off onboarding communications
**First Event Start workflows** enable:
* Pre-event preparation reminders
* Day-of arrival and parking instructions
* Last-minute contact information
* Post-event thank you messages
**Last Event End workflows** enable:
* Thank you emails after event completion
* Review and feedback requests
* Photo/video delivery notifications
* Re-booking campaigns
## Next Steps
* Learn about [workflow triggers](/workflows/triggers)
* Explore [workflow templates](/workflows/templates)
* Understand [shortcodes](/workflows/shortcodes/overview)
# Helper Functions
Source: https://docs.flashquotes.com/workflows/shortcodes/helpers
Understanding and using helper functions with shortcodes in Flashquotes
Helper functions add flexibility to shortcodes in workflow templates. Currently, one helper function is available.
## Available Functions
* [Default Values](/workflows/shortcodes/helpers/default) - Specify fallback values when fields are empty
## Coming Soon
Additional helper functions are in development:
* If Conditions - Conditional content based on values
* Unless Conditions - Inverse conditional logic
These helpers are not yet implemented in the system.
# Default Value
Source: https://docs.flashquotes.com/workflows/shortcodes/helpers/default
Learn how to use the default value helper function to handle empty values in shortcodes
The `default` helper function allows you to specify a fallback value when a shortcode field is empty. This ensures your emails always display something meaningful, even when data is missing.
## Syntax
The syntax for this helper function is:
```
{{default shortcode_value fallback_default_value}}
```
Where:
* `default` is the function name
* `shortcode_value` is the primary value you want to display
* `fallback_default_value` is what will be displayed if the `shortcode_value` is empty
## Examples
### Using a String Fallback
```
Hey {{default lead.full_name 'there'}}!
```
If `lead.full_name` exists:
```
Hey John Doe!
```
If `lead.full_name` is empty:
```
Hey there!
```
### Using Another Shortcode as Fallback
```
Contact us at {{default company.contact_phone company.contact_email}}
```
If `company.contact_phone` exists:
```
Contact us at +1 234-567-890
```
If `company.contact_phone` is empty:
```
Contact us at contact@acmeinc.com
```
## Best Practices
* Always use default values for critical personalization fields
* Keep default values generic but professional
* Test your templates with both filled and empty fields
* Consider using other shortcodes as fallbacks when appropriate
* Preview your templates to ensure the fallbacks work as expected
# If Conditions
Source: https://docs.flashquotes.com/workflows/shortcodes/helpers/if-else
Learn how to use if/else conditional logic in your workflow message templates
The `if` helper is not currently available in Flashquotes workflows. This feature is in development.
The `if` helper will allow you to conditionally include content based on whether a value exists.
## Planned Features
When available, the `if` helper will support:
* Basic conditional logic
* Else blocks for alternative content
* Multiple conditions in templates
* Nested conditions for complex logic
## Alternative Solution
For now, use the [default helper](/workflows/shortcodes/helpers/default) to provide fallback values when fields are empty.
## Coming Soon
This feature is in development. Check back for updates on availability.
# Unless Conditions
Source: https://docs.flashquotes.com/workflows/shortcodes/helpers/unless
Learn how to use unless conditional logic in your workflow message templates
The `unless` helper is not currently available in Flashquotes workflows. This feature is in development.
The `unless` helper will be the inverse of the `if` helper, executing content when values are empty or missing.
## Planned Features
When available, the `unless` helper will support:
* Inverse conditional logic ("if not")
* Checking for missing or empty values
* Else blocks for alternative content
* Nested conditions
## Alternative Solution
For now, use the [default helper](/workflows/shortcodes/helpers/default) to provide fallback values when fields are empty.
## Coming Soon
This feature is in development. Check back for updates on availability.
# Overview
Source: https://docs.flashquotes.com/workflows/shortcodes/overview
Understanding and using shortcodes in Flashquotes workflows
Shortcodes are dynamic placeholders that automatically insert relevant information into your workflow emails and quote line items. They help personalize content and ensure accurate information is always included.
Short codes are formatted as `{{entity.attribute}}` and must be surrounded by `{{}}` to be translated to a dynamic value.
After adding shortcodes to a message template, [preview
it](/workflows/templates#testing-your-templates) with a quote to make sure
they work as expected
## Where Shortcodes Work
Shortcodes resolve in:
* **Workflow email templates** — Quote Sent, Quote Booked, First Event Start, Last Event End
* **Quote line item descriptions** — Service and Add-on descriptions on a quote. Personalize each line with guest count, event date, customer name, and more using the same `{{entity.attribute}}` syntax. Shortcodes resolve when the quote is created.
## Available Shortcodes by Trigger
Specific shortcodes are only available for certain triggers based on what data is available at that stage of the customer journey.
### Contact Information
| Shortcode | Description | Example |
| ----------------------- | ----------------------- | ------------------------------------------- |
| `{{lead.first_name}}` | Contact's first name | John |
| `{{lead.last_name}}` | Contact's last name | Doe |
| `{{lead.full_name}}` | Contact's full name | John Doe |
| `{{lead.email}}` | Contact's email address | [john@example.com](mailto:john@example.com) |
| `{{lead.company_name}}` | Contact's company name | Acme Inc |
| `{{lead.phone}}` | Contact's phone number | +1 234-567-890 |
| `{{lead.city}}` | Contact's city | New York |
### Company Information
This is information about your company
| Shortcode | Description | Example |
| --------------------------- | ---------------------------- | ------------------------------------------------- |
| `{{company.name}}` | Company name | Acme Inc |
| `{{company.contact_email}}` | Company contact email | [contact@acmeinc.com](mailto:contact@acmeinc.com) |
| `{{company.contact_phone}}` | Company contact phone number | +1 234-567-890 |
### Quote Information
| Shortcode | Description | Example |
| ---------------------------------------- | -------------------------------------------------------------- | ------------------------- |
| `{{quote.event_start_date}}` | Quote event start date | May 1, 2025 |
| `{{quote.event_start_time}}` | Quote event start time | 10:00 AM |
| `{{quote.event_end_date}}` | Quote event end date | May 2, 2025 |
| `{{quote.event_end_time}}` | Quote event end time | 10:00 PM |
| `{{quote.event_address}}` | Quote event address | 123 Main St, Anytown, USA |
| `{{quote.guest_count}}` | Quote guest count | 10 |
| `{{quote.number_of_days}}` | Quote number of days | 2 |
| `{{quote.number_of_staff}}` | Quote number of staff | 2 |
| `{{quote.number_of_resources}}` | Quote number of resources | 2 |
| `{{quote.expiration_date}}` | Quote expiration date | May 30, 2025 |
| `{{quote.service_duration_hours}}` | Total service duration across all days, in hours | 8 |
| `{{quote.daily_service_duration_hours}}` | Average service duration per day, in hours (rounded to 15 min) | 4 |
### Contact Information
| Shortcode | Description | Example |
| ----------------------- | ----------------------- | ------------------------------------------- |
| `{{lead.first_name}}` | Contact's first name | John |
| `{{lead.last_name}}` | Contact's last name | Doe |
| `{{lead.full_name}}` | Contact's full name | John Doe |
| `{{lead.email}}` | Contact's email address | [john@example.com](mailto:john@example.com) |
| `{{lead.company_name}}` | Contact's company name | Acme Inc |
| `{{lead.phone}}` | Contact's phone number | +1 234-567-890 |
| `{{lead.city}}` | Contact's city | New York |
### Company Information
This is information about your company
| Shortcode | Description | Example |
| --------------------------- | ---------------------------- | ------------------------------------------------- |
| `{{company.name}}` | Company name | Acme Inc |
| `{{company.contact_email}}` | Company contact email | [contact@acmeinc.com](mailto:contact@acmeinc.com) |
| `{{company.contact_phone}}` | Company contact phone number | +1 234-567-890 |
### Booking Information
These shortcodes are available for booking-based workflow triggers
| Shortcode | Description | Example |
| --------------------------------------------- | ------------------------------------------------ | ------------------------------------------- |
| `{{booking.first_name}}` | Booking contact first name | John |
| `{{booking.last_name}}` | Booking contact last name | Doe |
| `{{booking.full_name}}` | Booking contact full name | John Doe |
| `{{booking.email}}` | Booking contact email | [john@example.com](mailto:john@example.com) |
| `{{booking.phone}}` | Booking contact phone | +1 234-567-890 |
| `{{booking.first_event_start_date}}` | First event start date | May 1, 2025 |
| `{{booking.first_event_start_time}}` | First event start time | 10:00 AM |
| `{{booking.last_event_end_date}}` | Last event end date | May 2, 2025 |
| `{{booking.last_event_end_time}}` | Last event end time | 10:00 PM |
| `{{booking.first_event_end_date}}` | First event end date | May 1, 2025 |
| `{{booking.first_event_end_time}}` | First event end time | 4:00 PM |
| `{{booking.last_event_start_date}}` | Last event start date | May 2, 2025 |
| `{{booking.last_event_start_time}}` | Last event start time | 9:00 AM |
| `{{booking.first_event_address}}` | First event venue address | 123 Main St, Anytown, USA |
| `{{booking.first_event_guest_count}}` | First event guest count (shows "TBD" if not set) | 50 |
| `{{booking.first_event_number_of_staff}}` | First event staff count | 2 |
| `{{booking.first_event_number_of_resources}}` | First event resource count | 2 |
| `{{booking.number_of_events}}` | Number of events in booking | 3 |
| `{{booking.created_date}}` | Date booking was created | April 15, 2025 |
Booking shortcodes are available for **Quote Booked**, **First Event Start**, and **Last Event End** triggers. First Event Start and Last Event End require a Plus or Pro subscription.
Quote shortcodes like `{{quote.number_of_staff}}` and `{{quote.number_of_resources}}` are **not** available in booking-based triggers (First Event Start, Last Event End) — bookings can exist without a quote, so quote data isn't guaranteed. Use `{{booking.first_event_number_of_staff}}` and `{{booking.first_event_number_of_resources}}` instead.
## Shortcode Availability Matrix
| Shortcode Category | Quote Requested | Quote Sent | Quote Booked | First Event Start | Last Event End |
| ------------------ | --------------- | ---------- | ------------ | ----------------- | -------------- |
| **Contact** | ✓ | ✓ | ✓ | - | - |
| **Company** | ✓ | ✓ | ✓ | ✓ | ✓ |
| **Quote** | ✓ | ✓ | - | - | - |
| **Booking** | - | - | ✓ | ✓ | ✓ |
Ready to become a shortcodes power user? Check out our [Helper
Functions](/workflows/shortcodes/helpers) for additional features like default
values and more.
# Templates
Source: https://docs.flashquotes.com/workflows/templates
Learn how to customize and manage workflow templates in Flashquotes
## Understanding Workflow Templates
Workflow templates are pre-configured email sequences for contact follow-up. The quote follow-up workflow includes 7 email templates designed for optimal conversion rates.
## What's Included
Each email template includes:
* **Subject Line**: Pre-written subject optimized for engagement
* **Message Body**: Professional content designed for conversions
* **Timing**: Optimized sending intervals (immediate to 30 days)
* **Shortcodes**: Automatic insertion of quote and contact details
## Template Sequence
The 7-step sequence includes:
1. Welcome email (immediate)
2. 3-day follow-up
3. 7-day reminder
4. 14-day check-in
5. 21-day final offer
6. 28-day last chance
7. 30-day archive notice
## Using Shortcodes
Templates include shortcodes that automatically insert your data:
* `{{lead.full_name}}`: The contact's full name
* `{{quote.event_start_date}}`: The date of the first event
* `{{company.name}}`: Your company name
Learn more about [shortcodes](/workflows/shortcodes/overview).
## Customizing Your Workflow
While templates come pre-configured and ready to use, you have full control to customize them to fit your business needs:
### Adding New Steps
You can add additional steps to your workflow at any position:
1. Navigate to **Workflows** in the sidebar
2. Click on the Quote Follow-up workflow
3. Click **Add Step** between existing steps or at the end
4. The system automatically calculates a smart delay based on surrounding steps
5. Customize the email subject and message content for your new step
### Editing Step Content
Each workflow step includes an email template that you can customize:
1. Click on any workflow step to edit
2. Modify the subject line and message body
3. Use shortcodes to personalize content with contact and quote data
4. Changes are saved automatically
### Deleting Steps
Remove steps that don't fit your follow-up strategy:
1. Click on the workflow step you want to remove
2. Click the **Delete** button in the step editor
3. Confirm deletion - this will soft-delete the step and its message template
Deleting a step will **immediately** prevent that step from being sent, even for active workflows.
Adding a step only impacts **future workflow enrollments**. The new step will **not** be added to existing active workflows.
## How Templates Work
Templates are pre-configured and automatically activated when you:
1. Send a quote with "Enroll in workflow" enabled
2. The system sends emails according to the preset schedule
3. Each email uses the appropriate template for that step
# Triggers
Source: https://docs.flashquotes.com/workflows/triggers
Understanding workflow triggers and automation in Flashquotes
## Available Triggers
Flashquotes offers multiple workflow triggers to automate customer communications at different stages of the customer journey. Each trigger has access to specific shortcodes relevant to that stage.
### Quote Requested
The Quote Requested trigger automatically enrolls contacts in workflows when they submit a quote request through your lead intake forms. This allows you to engage contacts immediately after they express interest, before you even send a formal quote.
**How it works:**
1. A contact submits your lead intake form
2. Flashquotes automatically enrolls them in any active Quote Requested workflows
3. The email sequence begins immediately based on your configured timing
4. Workflows continue until the contact books or you stop them manually
**Key Features:**
* **Automatic Enrollment**: No manual action required - contacts are enrolled as soon as they submit the form
* **Immediate Engagement**: Connect with contacts during the critical window between request and quote delivery
* **Gmail Account Selection**: Choose which connected Gmail account sends the workflow emails
* **Customizable Templates**: Create email sequences tailored to new inquiries
**Common Use Cases:**
* Send immediate acknowledgment confirming quote request receipt
* Share your company story and build trust while preparing their quote
* Provide helpful event planning tips and resources
* Set expectations about your quote preparation timeline
* Answer common questions proactively
**Setting Up Quote Requested Workflows:**
To create a Quote Requested workflow:
1. Navigate to Workflows from your main navigation
2. Create a new workflow
3. Select "Quote Requested" as the trigger type
4. Add email steps with your desired timing and content
5. Publish the workflow to activate automatic enrollment
### Quote Sent
The Quote Sent trigger automatically starts the workflow when you send a quote with "Enroll in workflow" enabled. You can create multiple Quote Sent workflows and choose which one to use for each quote.
**How it works:**
1. Send a quote from the quotes page
2. Toggle "Enroll in workflow" before sending
3. Select which workflow to use from the dropdown (the default is pre-selected)
4. The email sequence begins automatically based on the selected workflow
**Key Features:**
* **Multiple Workflows**: Create different follow-up sequences for different situations
* **Default Workflow**: Set a default that's pre-selected in the send modal — the first workflow created is automatically set as default
* **Manual Control**: Choose whether to enroll each quote individually
* **Customizable**: Modify timing, content, and number of steps to match your sales process
**Managing Defaults:**
* Navigate to any Quote Sent workflow and click **Set as default** in the header
* The default workflow shows a "Default" badge in the workflows list
* If you delete the default workflow, the next oldest is automatically promoted
### Quote Booked
The Quote Booked trigger fires automatically when a customer completes a booking. Use this to send post-booking communications like confirmation details, next steps, or onboarding information.
**How it works:**
1. Create a workflow with the Quote Booked trigger
2. Add email steps with your desired timing and content
3. Publish the workflow
4. When a quote is booked, the contact is automatically enrolled
**Key Features:**
* **Automatic Enrollment**: Contacts enroll as soon as their quote is booked
* **Contact & Booking Shortcodes**: Access contact, company, and booking details in email templates
* **Gmail Integration**: Send from your connected Gmail account
* **Customizable Templates**: Create sequences tailored to post-booking communications
**Common Use Cases:**
* Send booking confirmation with event details
* Share preparation guides and next steps
* Deliver important information and links
* Begin onboarding communications
* Request additional information needed for the event
### First Event Start
The First Event Start trigger allows you to send workflow emails based on when the first event in a booking begins. This is perfect for time-sensitive communications that need to happen before, during, or after the event starts.
**How it works:**
1. Create a workflow with the First Event Start trigger
2. Add email steps with delays relative to the event start time (e.g., "2 days before" or "1 hour after")
3. Publish the workflow
4. When bookings are created, they're automatically enrolled
5. Emails are scheduled based on the actual first event start time
6. If event date change the workflow emails automatically reschedule
**Key Features:**
* **Automatic Enrollment**: Bookings enroll automatically when created
* **Dynamic Scheduling**: Emails schedule based on actual event start times
* **Automatic Rescheduling**: Updates when event dates change
* **Booking Shortcodes**: Access booking-specific details in email templates
* **Gmail Integration**: Send from your connected Gmail account
**Common Use Cases:**
* Remind clients of their upcoming service
* Send details and set expectations with clients
* Morning-of message with setup information
* Immediate post-event thank you message
**Scheduling Details:**
* Steps can be scheduled before or after the event start time
* Rescheduling happens automatically when event date change
**Requirements:**
* [Plus or Pro subscription](https://flashquotes.com/pricing)
### Last Event End
The Last Event End trigger allows you to send workflow emails based on when the final event in a booking concludes. This is ideal for post-event follow-ups, review requests, and re-engagement campaigns.
**How it works:**
1. Create a workflow with the Last Event End trigger
2. Add email steps with delays relative to the event end time (e.g., "1 day after" or "7 days after")
3. Publish the workflow
4. When bookings are created, they're automatically enrolled
5. Emails are scheduled based on the actual last event end time
6. If event date change the workflow emails automatically reschedule
**Key Features:**
* **Automatic Enrollment**: Bookings enroll automatically when created
* **Dynamic Scheduling**: Emails schedule based on actual event end times
* **Automatic Rescheduling**: Updates when event dates change
* **Booking Shortcodes**: Access booking-specific details in email templates
* **Gmail Integration**: Send from your connected Gmail account
**Common Use Cases:**
* Thank you email immediately after the last event
* Review request 1-2 days after event completion
* Feedback survey request 1 week after event
* Re-booking campaign 30-60 days after event
**Scheduling Details:**
* Steps are typically scheduled after the event end time
* Rescheduling happens automatically when event date change
**Requirements:**
* [Plus or Pro subscription](https://flashquotes.com/pricing)
## Workflow Trigger Comparison
| Feature | Quote Requested | Quote Sent | Quote Booked | First Event Start | Last Event End |
| ------------------------ | --------------------------------- | -------------------------------- | -------------------------- | ------------------------------ | ------------------------------ |
| **Activation** | Automatic on form submission | Manual toggle when sending quote | Automatic when booked | Automatic when booking created | Automatic when booking created |
| **Timing** | Immediately after form submission | When you send the quote | When quote is booked | Relative to first event start | Relative to last event end |
| **Use Case** | Initial engagement | Quote follow-up | Post-booking comms | Pre/during/post first event | Post-event follow-up |
| **Default Templates** | None (create custom) | 7 pre-configured emails | None (create custom) | None (create custom) | None (create custom) |
| **Enrollment** | Automatic for all forms | Optional per quote | Automatic for all bookings | Automatic for all bookings | Automatic for all bookings |
| **Subscription** | All plans | All plans | All plans | Plus/Pro only | Plus/Pro only |
| **Available Shortcodes** | Contact, Company, Quote | Contact, Company, Quote | Contact, Company, Booking | Company, Booking | Company, Booking |
| **Rescheduling** | No | No | No | Yes (on event date change) | Yes (on event date change) |
## Choosing the Right Trigger
### For Contact Engagement
* **Quote Requested**: First touchpoint when a contact shows interest
* **Quote Sent**: Follow up after presenting your proposal
### For Post-Booking Communication
* **Quote Booked**: Immediate post-booking confirmation and onboarding
* **First Event Start**: Time-sensitive pre-event and day-of communications
* **Last Event End**: Post-event follow-up and relationship building
## Available Shortcodes by Trigger
Different triggers have access to different shortcodes based on what information is available at that stage:
* **All Triggers**: Company shortcodes (`{{company.name}}`, `{{company.contact_email}}`, etc.)
* **Quote-Based** (Quote Requested, Quote Sent): Contact and Quote shortcodes
* **Booking-Based** (Quote Booked, First Event Start, Last Event End): Contact and Booking shortcodes
[View complete shortcodes reference →](/workflows/shortcodes/overview)
# Workflow Enrollments
Source: https://docs.flashquotes.com/workflows/workflow-enrollments
Learn how to enroll contacts in workflows and manage active enrollments
## Enrolling Contacts in Workflows
### Automatic Enrollment
Contacts are automatically enrolled in workflows based on the trigger type:
* **Quote Requested**: Contacts enroll when they submit your lead intake form
* **Quote Sent**: Enroll contacts when sending quotes (toggle in send quote modal, then select a workflow)
* **Quote Booked**: Contacts enroll automatically when a quote is booked
* **First Event Start** / **Last Event End**: Bookings enroll automatically when created
### During Quote Sending
1. Navigate to the Send Quote modal when preparing to send a quote
2. At the top of the modal, locate the "Enroll in workflow" toggle
3. Enable the toggle to enroll the contact in a follow-up workflow
4. Select which workflow to use from the dropdown — your default workflow is pre-selected
5. Send the quote as normal
You can create multiple Quote Sent workflows for different follow-up strategies. Set a default workflow from the workflow detail page so it's always pre-selected when sending quotes.
## Bulk Enrolling Bookings
For workflows with First Event Start or Last Event End triggers, you can enroll multiple existing bookings at once. This saves time when you create a new workflow and want to include existing upcoming bookings.
**To bulk enroll bookings:**
1. Navigate to Workflows from your main navigation
2. Click on a published workflow with event-based triggers
3. Select the **Enrollments** tab
4. Click the **Enroll Upcoming Bookings** button in the top right
5. Review the list of eligible bookings
6. Select the bookings you want to enroll
7. Click **Enroll Selected**
**Eligible bookings:**
* Have at least one future event (event hasn't occurred yet)
* Are not already enrolled in this workflow
* Match the workflow's trigger type (First Event Start or Last Event End)
**What you'll see:**
* Booking name
* Event name
* Event date and time (in the location's timezone)
* Checkbox to select for enrollment
**When to use bulk enrollment:**
* You created a new workflow and want to include existing upcoming bookings
Bulk enrollment is only available for published workflows. Draft workflows must be published first before you can enroll bookings.
## Tracking Enrollments
### Workflow-Level View
View all active enrollments for a specific workflow from the Enrollments tab in the workflow details page. This gives you a complete overview of every contact currently enrolled in that workflow.
From the Enrollments tab, you can:
* **View all active enrollments**: See every contact currently enrolled in the workflow with their name and email
* **Track progress**: See how many steps each contact has completed out of the total steps (e.g., "3/7")
* **Monitor enrollment timing**: See when each contact was enrolled (e.g., "2 days ago")
* **Quick navigation**: Click any enrollment row to jump directly to that contact's Workflows tab
**To access workflow enrollments:**
1. Navigate to Workflows from your main navigation
2. Click on any workflow to view its details
3. Select the **Enrollments** tab
4. View the table showing all active enrollments with progress bars
This view is especially useful for Quote Requested workflows where enrollments happen automatically, giving you visibility into how many contacts are receiving your automated sequences and how far they've progressed through the steps.
### Quote-Level View
From the quote details page, you can:
* See a banner showing how many workflows the quote is enrolled in
* View all scheduled emails for active workflows
* Preview the content of upcoming scheduled messages
* Click **Stop all** to stop all workflows for the quote with a single click
### Contact-Level View
The Contact Details View includes a dedicated Workflows tab that shows:
* **Active Workflows**: Currently running sequences
* **Completed Workflows**: Successfully finished sequences
* **Canceled Workflows**: Manually stopped sequences
From this view, you can:
* Stop individual or multiple workflows
* Preview scheduled email content
* Access workflow templates for editing
* Track the progress of each enrollment
### Contact Quote List
Within the quotes tab in the contact details view, you can easily identify quotes enrolled in a workflow with orange workflow enrollment icon and counter
## Managing Active Workflows
### Stopping Workflows
You may want to stop an active workflow because the contact has replied and is engaging with your team or because they've said they no longer need your services.
You can stop workflows in several ways:
1. **From Quote View**:
* Click "Stop all" in the workflow banner to stop all active workflows
The "Stop all" button stops workflow enrollments for this specific quote only.
It does not affect workflow enrollments for other quotes this contact may have.
2. **From Contact Workflows Tab**:
* Select individual workflows to stop
* You can easily click **Stop Workflow** on all active workflow for this contact
### Resuming Stopped Workflows
If you've stopped a workflow but want to restart the automated follow-up sequence, you can easily resume it:
1. Navigate to the **Contact Workflows Tab** in the contact details view
2. Locate the stopped workflow in the "Canceled Workflows" section
3. Click the **Resume Workflow** button (only visible if there are future scheduled steps)
4. The workflow will reactivate and continue sending scheduled emails
You can only resume a workflow if it has scheduled steps in the future. Workflows that have completed all their steps cannot be resumed.
**When to Resume Workflows:**
* The contact initially showed no interest but has now re-engaged
* You accidentally stopped a workflow too early
* The contact requested more time to consider and now wants to continue receiving information
* A communication misunderstanding has been resolved
### Automatically Stopping Workflows
When a contact books a quote, all active workflows for that contact will be stopped automatically
This includes workflows across multiple quotes that may be active
This automatic stopping ensures you maintain a professional relationship with your contacts and don't continue sending sales-focused follow-ups after they've already decided to work with you.
If a contact engages with you **before** booking, all active workflows will
continue until you stop them manually.
## Best Practices
* Regularly review active workflows to ensure relevance
* Stop workflows if direct engagement begins with the contact
* Monitor email analytics to optimize workflow effectiveness