openapi: 3.0.0 info: title: LeanData BookIt ποΈ Availability ποΈ Availability Legacy (still supported) API description: Programmatic scheduling, availability lookup, and meeting management for the LeanData BookIt scheduling product. Power custom UIs with server-to-server access to availability, round-robin, and meeting CRUD. version: 1.0.0 servers: - url: https://api.leandata.com tags: - name: Legacy (still supported) description: '
This section outlines the endpoints used to retrieve scheduling data for building a custom calendaring experience. Both endpoints return the same structure of read-only informationβincluding scheduling metadata, working hours, available time slots, and configured usersβthat can be used to render the scheduling page.
v1/scheduling/retrieve-info β Use this endpoint when booking a meeting for the first time.
v1/scheduling/retrieve-modification-info β Use this endpoint when modifying an existing meeting, such as rescheduling or canceling.
These endpoints provide all the data needed to power the UI for selecting a meeting time and pre-populating prospect details.
' paths: /v1/scheduling/route: post: tags: - Legacy (still supported) summary: /v1/scheduling/route (legacy) description: 'Legacy routing-only endpoint. Runs routing and returns routing results as encrypted token, but does not return availability. Existing integrations may continue using this endpoint. For new builds, prefer POST /v1/scheduling/route-and-fetch-availability.
Depending on the concluding routing decision, this endpoint will either return data needed to query for the next endpoint, a redirect link, or an indication to render your fallback experience.
Typical follow-up:
Call POST /v1/scheduling/retrieve-info (legacy) or use the combined endpoint instead.
_ld_nodeName (required) β A string value that contains the name of your Trigger Node (in the BookIt Flowbuilder)
_ld_uid (required) β A string value that contains your BookIt Unique Log ID.
formData (required) β An object that contains the prospect data needed for the BookIt Flowbuilder and routing process.
responseType β A string that indicates the routing outcome determined by the BookIt routing graph. Possible values are:
"calendar" β The routing graph reached a "Schedule" node. Encrypted scheduling parameters are returned in the params field.
"redirect" β The routing graph reached a "Redirect to URL" node. A redirect URL is returned in the redirect field.
"none" β The routing graph reached an "End of Flow" node. No scheduling or redirect data is returned. This can be used to trigger a fallback experience in your UI.
params (optional) β A string value that is base64-encoded and acts as a token for retrieving the scheduling page data the subsequent API call.
Only present when responseType is "calendar".
This value should be passed to the appropriate scheduling endpoint to retrieve the full scheduling page configuration.
You do not need to decrypt this string manually.
redirect (optional) β A string containing the URL configured in the "Redirect to URL" node of the BookIt routing graph.
Only present when responseType is "redirect".
Redirect users to this URL to continue the scheduling process as defined by your routing configuration.
Use this endpoint when booking a meeting for the first time. This endpoint returns comprehensive scheduling data needed to build a booking experience, including meeting configuration, host availability, and user information. This data enables the construction of a scheduling page with available time slots, host details, working hours, and meeting parameters.
params (required) β A string that contains encrypted details of the scheduling context. This should be the value that was returned from the /v1/scheduling/route endpoint.meeting β An object that contains metadata about the meeting type.
βοΈNote: All data in the meeting object is sourced directly from the Meeting Type configuration in the LeanData application. If any updates or changes are needed to this informationβsuch as duration, description, buffer settings, etc.βthey must be made in the LeanData application under the corresponding Meeting Type configuration. This data cannot be modified through the API.
name β A string that contains the name of the meeting type
duration β An object that describes the meeting duration
unit β A string that represents the time unit. (e.g. min)
value β A number that represents the duration value
formFields β An array of 9 form field objects that represent the input fields required to finalize the booking of the meeting. These form fields should appear on the final confirmation screen before the meeting is booked as these form values are used as variables in confirmation emails. LeanData will also use these values to send the confirmation email to. The fields are configured in the Meeting Type configuration under the "Additional Questions" tab in the LeanData applicationβ The default and required form fields are First Name, Last Name, Email, and Additional Guest Emails. Admins can configure up to 5 additional custom questions.
The fields that represent the optional additional questions will have a property of isAdditionalQuestion: true. If no additional questions are configured in the Meeting Type, these fields will have empty name values and should be treated as unused.
βοΈ Important: You must send back values for all defined fields when booking a meeting.
If only the default fields are configured (First Name, Last Name, Email, and Guest Emails), then only those 4 values need to be returned.
If any optional questions are configured, values for those must also be included in the booking request.
name β A string of the Field label.
type β A string that represents the input type (e.g., text)
readOnly β A boolean that signifies whether a field can be edited. This value is based on the settings defined in the Meeting Type configuration.
required β A boolean that signifies whether a field is mandatory. This value is based on the settings defined in the Meeting Type configuration.
validation β An optional string that represents the type of validation to apply to the input. The only supported value is email, which signals that the input should be validated as a properly formatted email address. If no value is provided, standard text validation (e.g., checking for non-empty input if the field is required) is assumed.
isAdditionalQuestion β A boolean that signifies whether the field is an additional custom question
description β A string that contains the calendar event description
customRange β An object specifying a custom date range available for booking.
startTime β A number (UNIX timestamp) for when the date range begins
endTime β A number (UNIX timestamp) for when the date range ends.
timezone β A string representing the timezone used in the IANA Time Zone Database format. (e.g. America/Los_Angeles)
redirectURL β A string URL that is set in the Meeting Type configuration. This is the URL where the prospect should be redirect to upon successful booking.
internalName β A string used internally to identify the meeting type. This is set in the Meeting Type configuration.
pageStyle β An object that defines branding settings for the scheduling page. This is set in the LeanData application.
styleColor β A string representing the primary hex color code used to theme UI elements (e.g. buttons, highlights) on the scheduling page.logo β A string representing the URL of the company logo (uploaded in the LeanData application) to be displayed on the scheduling page. If empty, no logo was uploaded to the application.
pageInfo β An object that contains general page metadata.
displayAllPoolAvailability β A boolean/null that indicates to show all availability for all pool members. If this value is true, then you will need to use the /v1/round-robin-meeting endpoint to book the meeting.
round robin pool id β A string/null that contains the ID of round-robin scheduling pool if applicable
userIds β An array that contains user IDs involved in the meeting (hosts or pool members). This array can be used to display representative names on the scheduling calendar.
prefillFields β An object that contains form submission data for the prospect, specifically their "First Name", "Last Name", and "Email". These values can be used to pre-populate the prospect''s information before finalizing the meeting booking.
availability β An object that contains available time slots and a mapping of user indices to user IDs.
βοΈNote: If this object is empty, then this is an indicator that either the meeting type expired or there are no availability in the pool (e.g. all members are on vacations). In this scenario, please revert to your fallback experience.
indexToUserIdMap β An object that maps numeric indices (used in timeSlots.users) to user IDs from the userIdToInfoMap object.
timeSlots β An array of time slot objects that represent available meeting windows. You can use this data to render available times on your scheduling UI.
start_time β A number that represents the start time in Unix epoch milliseconds.
end_time β A number that represents the end time in Unix epoch milliseconds.
users β An array of numbers that reference user indices from indexToUserIdMap. These represent the users who are available during this time slot.
indexToUserIdMap) as part of the request payload when booking the meeting.userIdToInfoMap β An object that maps user IDs to user-specific details used for scheduling.
βοΈNote: The information in userIdToInfoMap is not required to build the core calendar UI. It is provided as supplementary context.
[userId] β An object where each key is a user ID and each value is a user object.
FirstName β A string that represents the user''s first name.
LastName β A string that represents the user''s last name.
Email β A string that represents the user''s email address.
TimeZoneSidKey β A string that represents the user''s primary time zone, using the IANA Time Zone Database format. (e.g. America/Los_Angeles)
ConferenceLink β A string that represents the user''s conferencing URL
This endpoint returns the same scheduling payload as v1/scheduling/retrieve-info, but is specifically used when rescheduling or canceling an existing meeting. Use this endpoint to retrieve all necessary data to re-render the scheduling UI in a modification flow.
eventId (required) β A string representing the unique identifier of the booked meeting. This should be the eventId returned from a successful booking via the /v1/meeting or /v1/round-robin-meeting endpoints. It is required to retrieve the scheduling information for rescheduling or canceling the meeting.
eventId to the end of the rescheduleLink and cancelLink (provided during booking), which are sent to the prospect in the post-scheduling emails. When the prospect clicks one of these links, they are directed to your reschedule or cancel page. You can extract the eventId directly from the URL when the page loads.event β An object representing the existing meeting being modified
id β A string unique identifier for the meeting.
status β A string representing the meeting status (e.g., "confirmed").
when β An object indicating the start and end times.
start_time β A number (UNIX timestamp) for when the meeting starts.
end_time β A number (UNIX timestamp) for when the meeting ends.
organizer_email β A string representing the email of the meeting organizer.
meeting β An object that contains configuration details about the meeting type.
βοΈNote: All data in the meeting object is sourced directly from the Meeting Type configuration in the LeanData application. If any updates or changes are needed to this informationβsuch as duration, description, buffer settings, etc.βthey must be made in the LeanData application under the corresponding Meeting Type configuration. This data cannot be modified through the API.
name β A string that contains the name of the meeting type
duration β An object that describes the meeting duration
unit β A string that represents the time unit. (e.g. min)
value β A number that represents the duration value
formFields β An array of 9 form field objects that represent the input fields required to finalize the booking of the meeting. These form fields should appear on the final confirmation screen before the meeting is booked as these form values are used as variables in confirmation emails. LeanData will also use these values to send the confirmation email to. The fields are configured in the Meeting Type configuration under the "Additional Questions" tab in the LeanData applicationβ The default and required form fields are First Name, Last Name, Email, and Additional Guest Emails. Admins can configure up to 5 additional custom questions.
The fields that represent the optional additional questions will have a property of isAdditionalQuestion: true. If no additional questions are configured in the Meeting Type, these fields will have empty name values and should be treated as unused.
βοΈ Important: You must send back values for all defined fields when booking a meeting.
If only the default fields are configured (First Name, Last Name, Email, and Guest Emails), then only those 4 values need to be returned.
If any optional questions are configured, values for those must also be included in the booking request.
name β A string of the Field label.
type β A string that represents the input type (e.g., text)
readOnly β A boolean that signifies whether a field can be edited. This value is based on the settings defined in the Meeting Type configuration.
required β A boolean that signifies whether a field is mandatory. This value is based on the settings defined in the Meeting Type configuration.
validation β An optional string that represents the type of validation to apply to the input. The only supported value is email, which signals that the input should be validated as a properly formatted email address. If no value is provided, standard text validation (e.g., checking for non-empty input if the field is required) is assumed.
isAdditionalQuestion β A boolean that signifies whether the field is an additional custom question
description β A string that contains the calendar event description
customRange β An object specifying a custom date range available for booking.
startTime β A number (UNIX timestamp) for when the date range begins
endTime β A number (UNIX timestamp) for when the date range ends.
timezone β A string representing the timezone used in the IANA Time Zone Database format. (e.g. America/Los_Angeles)
redirectURL β A string URL that is set in the Meeting Type Configuration. This is the URL where the prospect should be redirect to upon successful booking.
internalName β A string used internally to identify the meeting type. This is set in the Meeting Type Configuration.
pageStyle β An object that defines branding settings for the scheduling page. This is set in the LeanData application.
styleColor β A string representing the primary hex color code used to theme UI elements (e.g. buttons, highlights) on the scheduling page.logo β A string representing the URL of the company logo (uploaded in the LeanData application) to be displayed on the scheduling page. If empty, no logo was uploaded to the application.
pageInfo β An object that contains metadata related to the current scheduling request.
displayAllPoolAvailability β will always be null since the round robin pool member (if applicable) was already selected in the initial booking.
round robin pool id β will always be null since the round robin pool member was already selected in the initial booking.
userIds β An array that contains the IDs of users involved in the meeting (hosts or pool members) This array can be used to display representative names on the scheduling calendar.
prefillFields β An object that contains form submission data for the prospect, specifically their "First Name", "Last Name", and "Email". These values can be used to pre-populate the prospect''s information before finalizing the meeting booking.
isReschedule β A boolean indicating if the current booking is an attempt to reschedule.
scheduledTime β A stringified object containing:
startDateTime β A string timestamp for the start of the meeting.
endDateTime β A string timestamp for the end of the meeting.
timezone β A string for the time zone used (e.g.,"America/Los_Angeles").
hostId β A string representing the SFDC user ID hosting the meeting.
availability β An object that contains available time slots and a mapping of user indices to user IDs.
indexToUserIdMap β An object that maps numeric indices (used in timeSlots) to user IDs from the users object.
timeSlots β An array of time slot objects that represent available meeting windows. You can use this data to render available times on your scheduling UI.
start_time β A number that represents the start time in Unix epoch milliseconds.
end_time β A number that represents the end time in Unix epoch milliseconds.
users β An array of numbers that reference user indices from indexToUserIdMap. These represent the users who are available during this time slot. You''ll need to use the corresponding user IDs (from indexToUserIdMap) as part of the request payload when booking the meeting.
userIdToInfoMap β An object that maps user IDs to user-specific details used for scheduling.
βοΈNote: The information in userIdToInfoMap is not required to build the core calendar UI. It is provided as supplementary context.
[userId] β An object where each key is a user ID and each value is a user object.
FirstName β A string that represents the user''s first name.
LastName β A string that represents the user''s last name.
Email β A string that represents the user''s email address.
TimeZoneSidKey β A string that represents the user''s primary time zone, using the IANA Time Zone Database format. (e.g. America/Los_Angeles)
ConferenceLink β A string that represents the user''s conferencing URL.