Assistants need to reach this page over the internet. While it is only running on your machine, these two buttons will not be able to load it.
Each image has a one line explanation. Switch to full detail for the step it belongs to, the fields and buttons involved, examples and the whole procedure.
When a client books a service (like a photography session or consultation), if sending a contract that includes the specific booking date where the client has to sign is a critical part of your process, this article explains how to automate this - whether you have a simple booking process or a more advanced opportunity pipeline.
Objective & Challenge
Your Goal: You want a workflow to automatically send a contract that includes the client's specific appointment date and time as soon as they book.
The Challenge: You can't add an {{appointment.start_time}} merge tag directly into a contract template. The "Send Contract" action is designed to pull data from Contact or Opportunity fields, not directly from the appointment trigger itself.
The Solution: The solution is to use your workflow to first, copy the appointment date into a custom field (on the Contact or Opportunity), and second, send the contract that pulls from this new field.
Prerequisites
Before building the workflow, you must have two things set up:
A Custom Field to Store the Date:
Navigate to Settings > Custom Fields.
Click Add Field and select Contact (for the simple method) OR Opportunity (for the advanced method).
Set the Field Type to Text.
Name it clearly (e.g., "Session Date," "Event Date," or "Booking Date").
Click Save.
Step 5 of 5: Click SaveWhat this shows Step 5 of 5: Click Save.What this showsShows how to confirm for step 5 of 5 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 5 of 5 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you click Save. For context, this section explains: Before building the workflow, you must have two things set up. The navigation path used here is Settings > Custom Fields. This part of the guide covers 4 fields, listed below.Step 5 of 5Path: Settings > Custom FieldsImage 1 of 13How to confirmClick Save.
Fields in this part of the guideA Custom Field to Store the Date:An Updated Contract Template:For the Contact method: {{contact.session_date}}For the Opportunity method: {{opportunity.session_date}}
Buttons and menus referencedSaveSettingsCustom FieldsAdd FieldContactOpportunityField TypeTextSession DateEvent Date,"Booking DatePayments
All 5 steps in this procedure
Navigate to Settings > Custom Fields.
Click Add Field and select Contact (for the simple method) OR Opportunity (for the advanced method).
Set the Field Type to Text.
Name it clearly (e.g., " Session Date," " Event Date," or " Booking Date ").
Click Save. this image
Step 5 of 5: Click SaveWhat this shows Step 5 of 5: Click Save.What this showsShows how to confirm for step 5 of 5 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 5 of 5 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you click Save. For context, this section explains: Before building the workflow, you must have two things set up. The navigation path used here is Settings > Custom Fields. This part of the guide covers 4 fields, listed below.Step 5 of 5Path: Settings > Custom FieldsImage 2 of 13How to confirmClick Save.
Fields in this part of the guideA Custom Field to Store the Date:An Updated Contract Template:For the Contact method: {{contact.session_date}}For the Opportunity method: {{opportunity.session_date}}
Buttons and menus referencedSaveSettingsCustom FieldsAdd FieldContactOpportunityField TypeTextSession DateEvent Date,"Booking DatePayments
All 5 steps in this procedure
Navigate to Settings > Custom Fields.
Click Add Field and select Contact (for the simple method) OR Opportunity (for the advanced method).
Set the Field Type to Text.
Name it clearly (e.g., " Session Date," " Event Date," or " Booking Date ").
Click Save. this image
An Updated Contract Template:
Navigate to Payments > Contracts.
Find and Clone your existing template (e.g., "Service Agreement - with Date") or Create a New Template.
Edit the template and add your new custom field variable:
For the Contact method: {{contact.session_date}}
For the Opportunity method: {{opportunity.session_date}}
Save the template.
Step 4 of 4: Save the template. - Use contact custom field in the document template…What this shows Step 4 of 4: Save the template.What this showsShows how to confirm for step 4 of 4 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 4 of 4 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you save the template. - Use contact custom field in the document template -OR Use Opportunity custom fields [ Learn more ] if one contact can have multiple bookings. The navigation path used here is Payments > Contracts. This part of the guide covers 4 fields, listed below.Step 4 of 4Path: Payments > ContractsImage 3 of 13How to confirmSave the template. - Use contact custom field in the document template -OR Use Opportunity custom fields [ Learn more ] if one contact can have multiple bookings
Fields in this part of the guideA Custom Field to Store the Date:An Updated Contract Template:For the Contact method: {{contact.session_date}}For the Opportunity method: {{opportunity.session_date}}
Buttons and menus referencedSaveSettingsCustom FieldsAdd FieldContactOpportunityField TypeTextSession DateEvent Date,"Booking DatePayments
All 4 steps in this procedure
Navigate to Payments > Contracts.
Find and Clone your existing template (e.g., "Service Agreement - with Date") or Create a New Template.
Edit the template and add your new custom field variable:
Save the template. - Use contact custom field in the document template -OR Use Opportunity custom fields [ Learn more ] if one contact can have multiple bookings this image
- Use contact custom field in the document template
Step 4 of 4: Save the template. - Use contact custom field in the document template…What this shows Step 4 of 4: Save the template.What this showsShows how to confirm for step 4 of 4 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 4 of 4 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you save the template. - Use contact custom field in the document template -OR Use Opportunity custom fields [ Learn more ] if one contact can have multiple bookings. The navigation path used here is Payments > Contracts. This part of the guide covers 4 fields, listed below.Step 4 of 4Path: Payments > ContractsImage 4 of 13How to confirmSave the template. - Use contact custom field in the document template -OR Use Opportunity custom fields [ Learn more ] if one contact can have multiple bookings
Fields in this part of the guideA Custom Field to Store the Date:An Updated Contract Template:For the Contact method: {{contact.session_date}}For the Opportunity method: {{opportunity.session_date}}
Buttons and menus referencedSaveSettingsCustom FieldsAdd FieldContactOpportunityField TypeTextSession DateEvent Date,"Booking DatePayments
All 4 steps in this procedure
Navigate to Payments > Contracts.
Find and Clone your existing template (e.g., "Service Agreement - with Date") or Create a New Template.
Edit the template and add your new custom field variable:
Save the template. - Use contact custom field in the document template -OR Use Opportunity custom fields [ Learn more ] if one contact can have multiple bookings this image
-OR Use Opportunity custom fields [Learn more] if one contact can have multiple bookingsStep 4 of 4: Save the template. - Use contact custom field in the document template…What this shows Step 4 of 4: Save the template.What this showsShows how to confirm for step 4 of 4 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 4 of 4 in the "Prerequisites" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you save the template. - Use contact custom field in the document template -OR Use Opportunity custom fields [ Learn more ] if one contact can have multiple bookings. The navigation path used here is Payments > Contracts. This part of the guide covers 4 fields, listed below.Step 4 of 4Path: Payments > ContractsImage 5 of 13How to confirmSave the template. - Use contact custom field in the document template -OR Use Opportunity custom fields [ Learn more ] if one contact can have multiple bookings
Fields in this part of the guideA Custom Field to Store the Date:An Updated Contract Template:For the Contact method: {{contact.session_date}}For the Opportunity method: {{opportunity.session_date}}
Buttons and menus referencedSaveSettingsCustom FieldsAdd FieldContactOpportunityField TypeTextSession DateEvent Date,"Booking DatePayments
All 4 steps in this procedure
Navigate to Payments > Contracts.
Find and Clone your existing template (e.g., "Service Agreement - with Date") or Create a New Template.
Edit the template and add your new custom field variable:
Save the template. - Use contact custom field in the document template -OR Use Opportunity custom fields [ Learn more ] if one contact can have multiple bookings this image
Workflow Configuration: Choose Your Method
Choose the method that best fits your business process.
Method 1: The Simple "Contact" Workflow
This is the most direct method. It's perfect if you don't use an opportunity pipeline for your bookings and simply want to send a contract right after someone books.
Set Your Trigger:
Add a new workflow and select the Customer Booked Appointment trigger.
(Optional) Use the Filters to select the specific In calendar that should run this automation.
Step 2 of 2: (Optional) Use the Filters to select the specific In calendar that…What this shows Step 2 of 2: (Optional) Use the Filters to select the specific In calendar that should run this automation.What this showsShows what to choose for step 2 of 2 in the "Method 1: The Simple "Contact" Workflow" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 2 of 2 in the "Method 1: The Simple "Contact" Workflow" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you (Optional) Use the Filters to select the specific In calendar that should run this automation.Step 2 of 2Image 6 of 13What to choose(Optional) Use the Filters to select the specific In calendar that should run this automation.
Add a new workflow and select the Customer Booked Appointment trigger.
(Optional) Use the Filters to select the specific In calendar that should run this automation. this image
Add the "Update Contact Field" Action:
Click the (+) icon to add a new action.
Select Update Contact Field.
Select Field: Choose the Contact custom field you created (e.g., "Session Date").
Select Value: Click the tag icon and select Appointment > Start Time. This copies the booking date into your contact's custom field.
Step 4 of 4: Select Value: Click the tag icon and select Appointment > Start Time…What this shows Step 4 of 4: Select Value: Click the tag icon and select Appointment > Start Time.What this showsShows what to choose for step 4 of 4 in the "Method 1: The Simple "Contact" Workflow" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 4 of 4 in the "Method 1: The Simple "Contact" Workflow" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you select Value: Click the tag icon and select Appointment > Start Time. This copies the booking date into your contact's custom field. The navigation path used here is Appointment > Start Time.Step 4 of 4Path: Appointment > Start TimeImage 7 of 13What to chooseSelect Value: Click the tag icon and select Appointment > Start Time. This copies the booking date into your contact's custom field.
Select Field: Choose the Contact custom field you created (e.g., "Session Date").
Select Value: Click the tag icon and select Appointment > Start Time. This copies the booking date into your contact's custom field. this image
Add the "Send Contract" Action:
Click the (+) icon directly under the "Update Contact Field" step.
Select the Send Documents & Contracts action.
In the Template dropdown, select the new, updated contract template you created in the "Prerequisites" step.
Save and Publish your workflow.
Step 4 of 4: Save and Publish your workflowWhat this shows Step 4 of 4: Save and Publish your workflow.What this showsShows how to confirm for step 4 of 4 in the "Method 1: The Simple "Contact" Workflow" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 4 of 4 in the "Method 1: The Simple "Contact" Workflow" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you save and Publish your workflow. For context, this section explains: This is the most direct method. It's perfect if you don't use an opportunity pipeline for your bookings and simply want to send a contract right after someone books.Step 4 of 4Image 8 of 13How to confirmSave and Publish your workflow.
Click the (+) icon directly under the "Update Contact Field" step.
Select the Send Documents & Contracts action.
In the Template dropdown, select the new, updated contract template you created in the "Prerequisites" step.
Save and Publish your workflow. this image
4. The sent contract will have the booking date prefilled
Method 2: The Advanced "Opportunity" Workflow (image 9 of 13)What this shows Set Your Trigger: Add the "Update Contact Field" Action: Add the "Send Contract" Action:What this showsIllustrates the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?".This screenshot appears in the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?". The text alongside this image reads: Set Your Trigger: Add the "Update Contact Field" Action: Add the "Send Contract" Action. Immediately after, the guide continues: This method is for businesses that already have an opportunity-based pipeline. It finds an existing opportunity for the contact and updates it with the booking date. You can also set up workflows where post booking, a new opportunity is….Image 9 of 13What this coversSet Your Trigger: Add the "Update Contact Field" Action: Add the "Send Contract" Action:
Buttons and menus referencedfinds an existing opportunityCustomer Booked Appointmentcalendar(+)Find OpportunityMost recently created opportunityField"Session Date""Is Empty""Opportunity Found"Update OpportunityAdd field
Next stepThis method is for businesses that already have an opportunity-based pipeline. It finds an existing opportunity for the contact and updates it with the booking date. You can also set up workflows where post booking, a new opportunity is created and within that information is filled.All 5 steps in this procedure
Set Your Trigger:
Add the "Find Opportunity" Action:
Add the "Update Opportunity" Action:
Add the "Send Contract" Action:
The sent contract will now have the booking date prefilled.
Method 2: The Advanced "Opportunity" Workflow
This method is for businesses that already have an opportunity-based pipeline. It finds an existing opportunity for the contact and updates it with the booking date. You can also set up workflows where post booking, a new opportunity is created and within that information is filled.
Set Your Trigger:
Add the Customer Booked Appointment trigger, and filter for your specific calendar.
Step 1 of 1: Add the Customer Booked Appointment trigger, and filter for your…What this shows Step 1 of 1: Add the Customer Booked Appointment trigger, and filter for your specific calendar.What this showsShows what this covers for step 1 of 1 in the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 1 of 1 in the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you add the Customer Booked Appointment trigger, and filter for your specific calendar.Step 1 of 1Image 10 of 13What this coversAdd the Customer Booked Appointment trigger, and filter for your specific calendar.
Buttons and menus referencedCustomer Booked Appointmentcalendarfinds an existing opportunity(+)Find OpportunityMost recently created opportunityField"Session Date""Is Empty""Opportunity Found"Update OpportunityAdd field
Add the "Find Opportunity" Action:
Click the (+) icon and select Find Opportunity.
Set OPPORTUNITY TO BE FOUND to Most recently created opportunity.
Add a Field filter: Select your custom field (e.g., "Session Date") and set the condition to "Is Empty". This ensures you only update opportunities that need a date.
Step 3 of 3: Add a Field filter: Select your custom field (e.g., "Session Date")…What this shows Step 3 of 3: Add a Field filter: Select your custom field (e.g., "Session Date") and set the condition to "Is Empty".What this showsShows what to choose for step 3 of 3 in the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 3 of 3 in the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you add a Field filter: Select your custom field (e.g., "Session Date") and set the condition to "Is Empty". This ensures you only update opportunities that need a date.Step 3 of 3Image 11 of 13What to chooseAdd a Field filter: Select your custom field (e.g., "Session Date") and set the condition to "Is Empty". This ensures you only update opportunities that need a date.
Buttons and menus referencedField"Session Date""Is Empty"finds an existing opportunityCustomer Booked Appointmentcalendar(+)Find OpportunityMost recently created opportunity"Opportunity Found"Update OpportunityAdd field
All 3 steps in this procedure
Click the (+) icon and select Find Opportunity.
Set OPPORTUNITY TO BE FOUND to Most recently created opportunity.
Add a Field filter: Select your custom field (e.g., "Session Date") and set the condition to "Is Empty". This ensures you only update opportunities that need a date. this image
Add the "Update Opportunity" Action:
On the "Opportunity Found" branch, click the (+) icon.
Select the Update Opportunity action.
Add field and select your Opportunity custom field (e.g., "Session Date").
For the value, click the tag icon and select Appointment > Start Time.
Add the "Send Contract" Action:
Click the (+) icon directly under the "Update Opportunity" step.
Select the Send Documents & Contracts action.
In the Template dropdown, select your updated Opportunity-based contract template.
Step 3 of 3: In the Template dropdown, select your updated Opportunity -based…What this shows Step 3 of 3: In the Template dropdown, select your updated Opportunity -based contract template.What this showsShows what to choose for step 3 of 3 in the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 3 of 3 in the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you in the Template dropdown, select your updated Opportunity -based contract template.Step 3 of 3Image 12 of 13What to chooseIn the Template dropdown, select your updated Opportunity -based contract template.
Buttons and menus referencedTemplateOpportunityfinds an existing opportunityCustomer Booked Appointmentcalendar(+)Find OpportunityMost recently created opportunityField"Session Date""Is Empty""Opportunity Found"
All 3 steps in this procedure
Click the (+) icon directly under the "Update Opportunity" step.
Select the Send Documents & Contracts action.
In the Template dropdown, select your updated Opportunity -based contract template. this image
The sent contract will now have the booking date prefilled.
Step 5 of 5: The sent contract will now have the booking date prefilledWhat this shows Step 5 of 5: The sent contract will now have the booking date prefilled.What this showsShows what this covers for step 5 of 5 in the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?".This screenshot accompanies step 5 of 5 in the "Method 2: The Advanced "Opportunity" Workflow" section of "How to automatically add an appointment date to a Contract?". At this point in the walkthrough you the sent contract will now have the booking date prefilled.Step 5 of 5Image 13 of 13What this coversThe sent contract will now have the booking date prefilled.
Buttons and menus referencedfinds an existing opportunityCustomer Booked Appointmentcalendar(+)Find OpportunityMost recently created opportunityField"Session Date""Is Empty""Opportunity Found"Update OpportunityAdd field
All 5 steps in this procedure
Set Your Trigger:
Add the "Find Opportunity" Action:
Add the "Update Opportunity" Action:
Add the "Send Contract" Action:
The sent contract will now have the booking date prefilled. this image
Final Logic
Your workflow, whether using Method 1 or 2, must follow this logic:
Trigger (Appointment Booked)
Update Field (Contact or Opportunity)
Send Contract (Using the updated template) Troubleshooting Q&A: - The contract was sent, but the date field is blank: This could mean a few things- 1. Your workflow order is wrong. The Update Field action (Contact or Opportunity) must be placed before the Send Contract action. 2. If you are updating an opportunity then an opportunity should exist for the user who has made the booking. Else, create opportunity action should be used. - The old contract was sent, without the new date field: Go back into your Send Contract action and make sure you have selected your new, cloned template from the dropdown menu, not your old one.