Inquiry to Quote to Signed Contract: Automate the Booking Chain with Zapier
For Photographers ·
What This Builds
A new lead who fills out your inquiry form at 11pm has a drafted quote email sitting in your Gmail drafts by the time you check your phone in the morning, ready for a quick read and one click to send instead of twenty minutes of typing. Once that quote is accepted, a second connected Zap turns the acceptance into a contract sent out for signature, so the gap between "I'm interested" and "it's booked" stops depending on you finding a free half hour at your desk. You still read every draft and approve every send. The chain just removes the blank page.
Prerequisites
- Professional plan or higher ($29.99/month), since this build needs multi-step Zaps with a Path: Sign up
- A connected ChatGPT or OpenAI account inside Zapier for the AI drafting step ($20/month)
- An e-signature app such as DocuSign, PandaDoc or Dropbox Sign with a Zapier integration. Each has its own paid plan, so check the vendor's pricing page before you pick one
- A working inquiry form (Google Forms, Tally, JotForm, or your website's own form) that can trigger a Zap
- Total ongoing cost for this build: $29.99/month plus $20/month plus whatever the e-signature app charges
The Concept
Think of this as two short relay races instead of one long one. The first Zap catches a new inquiry, hands the details to an AI drafting step, and leaves a ready-to-send quote sitting in your inbox as a draft, never sent on its own. The second Zap only starts once you tell it the client said yes, and it hands a contract to your e-signature app. Neither Zap ever sends anything to a client without you touching it first. The automation's job is to remove typing, not to remove you from the decision.
Build It Step by Step
Part 1: Catch the Inquiry and Draft the Quote
- In Zapier, create a new Zap and set the trigger to your inquiry form (Google Forms "New Response," Tally "New Submission," or a Webhooks by Zapier trigger if your website posts the form directly).
- Add a Formatter by Zapier step and use it to pull out only the fields the draft actually needs: session type, package interest, add-ons and any budget notes. Leave the client's name, exact date and venue out of this step. Your prices and packages should live in the next step's prompt, not in the form data, so the AI step never needs to see who the client is or where the shoot happens. Zapier itself still receives the whole form submission and keeps it in its Zap History, so this step protects the client from the AI vendor, not from Zapier. Check Zapier's data retention settings once, and mention the tool in your privacy notice if you collect inquiries from families with children.
- Add a ChatGPT (or connected AI) action. Zapier's action picker lists AI steps under the connected app you authorized; look for a "Send Prompt" or "Conversation" style action. Set the model to GPT-5.6 Sol. Write a system-style instruction that includes your real current package names, inclusions and prices. Have it feed in the stripped session details from step 2 and ask for a warm, on-brand quote email with no placeholder brackets left unfilled.
- Test this step with one sample inquiry and read the output closely. If it invents a package you do not offer, tighten the instruction to say "only offer the packages listed above."
Part 2: Reassemble the Email and Hold It for Your Review
- Add a second Formatter step that merges the AI-drafted quote body back together with the client's actual name and the specific date, pulled from the original trigger data (not from the AI step). This keeps the email personal without ever having sent the client's name through the AI action.
- Add a Gmail "Create Draft" action, not "Send Email." Address it to the client, subject it with something like "Your [Session Type] Quote," and paste in the merged body from step 5.
- Turn the Zap on. From here, every new inquiry produces a draft sitting in your Gmail Drafts folder. You open it, skim it, fix anything that reads off, and hit send yourself.
Part 3: Turn an Accepted Quote into a Signed Contract Request
- Pick a simple signal for "the client said yes": a specific Gmail label you apply by hand to their reply (for example, "Ready for Contract"), or a row you move to a "Send Contract" status in a tracking sheet.
- Create a second Zap triggered on that signal (Gmail "New Labeled Email" or Google Sheets "Updated Row").
- Add your e-signature app's "Create Envelope" or "Send Document" action. Map in the client's name, email and the agreed price from your tracking data, using a contract template you already trust.
- Test the whole chain with a fake inquiry end to end before you rely on it. Submit a test form entry and confirm the Gmail draft appears and reads correctly. Then simulate the "accepted" signal and confirm the envelope goes out to a test email address, not a real client.
Real Example: A Weekend Portrait Inquiry
Setup: A portrait studio connects its website contact form, a ChatGPT account and DocuSign inside two Zaps as described above.
Input: A family submits the inquiry form Saturday night asking about a fall mini-session for four people.
Output: By Sunday morning, a quote email addressed to the family, mentioning the correct mini-session package and price, sits ready in Gmail Drafts. The photographer reads it over coffee, sends it as-is, and the family replies "yes" Monday. The photographer applies the "Ready for Contract" label, and a contract lands in the family's inbox for signature within minutes.
Time saved: Writing a first-inquiry reply with real pricing normally takes 15 to 20 minutes down to a couple of minutes with a chatbot alone. Chaining the quote through to a signed contract turns what used to be a multi-day, multi-step back-and-forth into something that can close the same day the client says yes.
What to Do When It Breaks
- The AI drafts a package or price you do not currently offer → tighten the instruction in the ChatGPT step to explicitly list only current packages, and re-test with a few different session types.
- The Gmail draft never appears → check Zapier's Zap History for that run. A common cause is the connected Gmail account's authorization expiring, which shows as a clear error in the history.
- The e-signature envelope goes out with the wrong price → check whether your tracking sheet or label step is pulling from the original quote or from a stale duplicate row, and fix the mapping in that action.
- Silent failure: a Zap can get automatically turned off after too many errors in a row, or a connected account's authorization can lapse without you noticing right away. You will not see an error message for this. You will simply stop seeing new drafts appear even though you know inquiries are still coming in. Check Zapier's Zap History weekly, and watch for Zapier's own "This Zap has been turned off" email.
Variations
- Simpler version: Run only Part 1 (the quote drafting Zap) and keep the contract stage fully manual until you trust the automation.
- Extended version: Add a Path step after the quote draft that automatically creates a follow-up reminder if the client has not replied within three days.
What to Do Next
- This week: Run five real inquiries through Part 1 only, and adjust the AI prompt's tone based on what you keep editing by hand.
- This month: Turn on Part 2 once you trust the quote drafts, starting with a manual review of every generated contract before it goes out.
- Advanced: Connect the end of this chain into the scheduled follow-up and review-request system so a signed contract also kicks off the pre-session and post-delivery sequence automatically.
Advanced guide for photographer professionals. These techniques use more sophisticated AI features that may require paid subscriptions.