Turn qualified consultation requests into discovery calls
Consultation requests that clear your budget threshold book a discovery call, with the challenge and budget already in the notes.
New Submission on your "Book a consultation" form
Create a booking on the "Discovery call" event type with the client's contact details and budget field in the notes
One-directional. A submission triggers the action — nothing is written back into your form.
For an independent consultant the diary is the business, so a week of calls that were never going anywhere is expensive. Putting the qualifying questions in front of the slot means only requests that clear your floor turn into a Cal.com booking.
Agencies run the same shape for inbound work. The intake form asks about the challenge, the timeline and the budget; Zapier continues to the Discovery call event type only when the answers add up, and everything else waits in your responses as a lead to answer by email.
Setting it up
- 1
Copy the Consulting Client Intake Form template and add a date-and-time question for the discovery slot at the very end, after the qualifying questions.
- 2
Use conditional logic to reveal that slot question only when Budget Range is at or above your minimum; below it, the form thanks them and you reply by email.
- 3
In Cal.com, create the Discovery call event type at the length you actually run first calls, with a buffer afterwards so notes get written.
- 4
Set a minimum notice of a day or two on that event type, so nobody books you for this afternoon.
- 5
Build the Zap on formformform's New Submission trigger, select the intake form, and add a filter that continues only when the slot answer is not empty.
- 6
Add the Cal.com booking action, choose Discovery call, and map Client Name and Email Address into the attendee.
- 7
Write Company Name into the booking title and the challenge, budget and timeline answers into the description, so the call opens with the qualifying answers in front of you.
- 8
Test twice — one submission below your budget floor, one above it — and confirm only the second creates a booking.
What maps where
Using the Consulting Client Intake Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.
| Form field | Cal.com |
|---|---|
| Client Name | Attendee name on the discovery call booking |
| Email Address | Attendee email; Cal.com sends the confirmation and reschedule link here |
| Company Name | Booking title, after the event type name |
| Current Business Challenge | Booking description — what the call is about |
| Budget Range | Booking description, so the number is agreed before you speak |
| Desired Timeline | Booking description, under the budget |
Variations worth knowing
Add Zapier paths on Budget Range. Larger engagements book a 45-minute Discovery call, smaller ones a 20-minute triage slot on a separate event type. The intake form is unchanged; only the Cal.com action differs between the paths.
Rather than stopping the Zap, send below-threshold submissions to your email tool instead of Cal.com. Same trigger, two paths, and the diary fills only with the calls you meant to take while the rest stay reachable later.
If something isn't arriving
Check the conditional rule. If it points at an answer option you later renamed, the slot question never appears, the answer is empty, and the Zapier filter stops the run. Re-select the qualifying values in the rule and mark the slot question required.
Cal.com copies the booking title and description onto the attendee's calendar entry too. If Budget Range should stay internal, leave it out of the Cal.com step and send it to Slack or your CRM in a second Zapier action on the same trigger.
Frequently asked questions
Can I stop people booking a call before they answer the qualifying questions?
That is the point of putting the slot at the end of an intake form instead of sharing your Cal.com link. The booking exists only because a submission created it, so there is no route into your diary that skips the questions.
What happens to requests that do not qualify?
They sit in your responses like any other submission, searchable and exportable. The Zap stops at the filter, so nothing reaches Cal.com and the diary stays clear, and you can still reply by hand when one looks worth a conversation.
Can the form show which slots I have left?
No, and it will not pretend to. Availability lives in Cal.com and the connection runs one way only. Set working hours and a minimum notice on the Discovery call event type so an impossible request is rejected rather than quietly double-booked.
Related automations
- Book a phone screen the moment a candidate applies
An application books a phone screen on the recruiter's event type, with the candidate as attendee and the role in the booking notes.
- Book a sales demo when someone requests one
Each demo request creates a booking on your sales demo event type, with the prospect as attendee and their chosen slot as the start.
- Book an onboarding kickoff for every new account
A finished onboarding questionnaire books the kickoff call, with the account name and first-30-day goals in the booking description.
- Spread office-hours signups across your hosts
Each office-hours signup books the next available host on a round-robin event type, so nobody balances the rota by hand.
- Turn callback requests into on-call bookings
Every callback request becomes a Support call booking, with the issue in the notes and a real slot instead of a queue position.
- Add service appointments to the dispatch calendar
A booking arrives and lands on the dispatch calendar with the address as a map pin and the job in the title.
Build the form first
The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.
Start free