Cal.com logo

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.

When this happens

New Submission on your "Request a demo" form

Do this

Create a Cal.com booking on the "Sales demo" event type with the prospect as the attendee and their preferred time as the start

One-directional. A submission triggers the action — nothing is written back into your form.

A demo request is only useful once it has a time on it. This flow takes the qualification answers a prospect gives — company, size, the problem they want solved — and turns the same submission into a confirmed meeting on the rep's Sales demo event type.

Sales teams with more inbound than reps reach for this first, because the reply-and-negotiate step disappears. The prospect picks a slot inside the form, Cal.com sends its own confirmation, and the demo is on the host's calendar before anyone has read the response.

Setting it up

  1. 1

    Start from the Demo Request Form template and add a date-and-time question for the slot the prospect wants; the stock template collects qualification detail but no time, and the Cal.com action needs a start.

  2. 2

    Publish the form and put it behind your "Request a demo" button, so the form is the only route to the demo.

  3. 3

    In Cal.com, open the Sales demo event type and check its duration, buffer and minimum notice — a request for a slot inside the notice window will be rejected.

  4. 4

    Create the Zap on formformform's New Submission trigger, select the demo form, and pull a sample submission so every field label appears in the mapper.

  5. 5

    Add the Cal.com booking action and choose the Sales demo event type and the rep or team that owns it.

  6. 6

    Map First Name and Last Name into the attendee name and Work Email into the attendee email — Cal.com sends the confirmation there, so a typo becomes a silent no-show.

  7. 7

    Map the slot answer into the booking start, and drop Company, Company Size and the problem question into the booking description so the rep opens the invite already briefed.

  8. 8

    Test with a submission using a real slot, confirm the booking appears on the rep's calendar, then switch the Zap on.

What maps where

Using the Demo Request Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.

Form fieldCal.com
First NameAttendee first name on the Cal.com booking
Last NameAttendee surname, joined to the first name
Work EmailAttendee email — where Cal.com sends the confirmation and calendar invite
CompanyBooking title, so the calendar entry reads "Sales demo — Acme"
Company SizeBooking description, above the problem statement
What problem are you trying to solve?Booking description — the rep's prep note for the call

Variations worth knowing

Route enterprise requests to a different event type

Add a Zapier filter on Company Size. Requests above your threshold continue to the enterprise account executive's event type, everything smaller books the standard Sales demo. Two Cal.com actions, one filter each, and the same demo form feeds both.

Hold the slot as pending until a rep accepts

Switch the Sales demo event type to requires confirmation. The Zap still creates a booking from every submission, but it lands as pending until a rep accepts it, which keeps speculative requests off the calendar without writing a qualification filter.

If something isn't arriving

The booking is created but the start time is an hour out.

Cal.com reads the start in the event type's timezone. Set that timezone explicitly in the Cal.com action instead of relying on the Zapier account default, and use a Formatter step to send an ISO timestamp if the form returns a plain date and time.

Zapier reports the action failed because no slot was available.

The requested time sat outside the event type's availability, inside its minimum notice, or was already taken. Widen the hours on the Sales demo event type, or limit the form's slot question to the hours the rep actually works so nobody can ask for 6am.

Frequently asked questions

Can the form show the rep's real availability before someone picks a slot?

No. The connection runs one way — a submission triggers a booking in Cal.com, and formformform never reads your calendar. Limit the slot question to your working hours, or turn on requires confirmation so a clashing request arrives as pending rather than confirmed.

What happens if the prospect wants to reschedule?

They use the reschedule link in Cal.com's confirmation, and Cal.com takes it from there. Nothing is written back into the form, so the submission stays as a record of what the prospect first asked for and when they asked for it.

Do I need a paid Cal.com plan for this?

Zapier works with whichever Cal.com account you authorise, and formformform is free during early access. Which event types you can create — a personal one or a team round-robin — depends on your Cal.com plan, so confirm the event type exists before building the Zap.

Related automations

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