openapi: 3.0.0 info: title: LeanData BookIt 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: π§ Scheduling Inputs description: '' - name: ποΈ Availability description: >
The availability endpoints return meeting configuration and open time slots used to render booking pages or refresh availability. Depending on the request context (routing, direct link, or reschedule), the response includes meeting details, eligible hosts, and available time windows.
POST
/v1/scheduling/route-and-fetch-availability
POST
/v1/scheduling/fetch-availability
Manage the full lifecycle of meetings-- including creation, retrieval, updates, cancellations, and rescheduling. These endpoints support booking confirmations, reschedule flows, auditing/debugging, and agentic scheduling workflows.
Retrieve
GET /v1/meetings - retrieve meetings
associated with a prospect by email
GET /v1/meeting/{meetingId}
Create
POST /v1/meeting
POST /v1/round-robin-meeting
Manage
PATCH /v1/meeting/{meetingId}
DELETE /v1/meeting/{meetingId}
Use these endpoints to finalize and book meetings after a timeslot has been selected.
β οΈ Important: You must support both
POST /v1/meeting and POST
/v1/round-robin-meeting.
The correct endpoint is determined by the availability response:
If pageInfo.displayAllPoolAvailability = true, you
must book using POST /v1/round-robin-meeting.
If pageInfo.displayAllPoolAvailability = null or
false, you must book using POST /v1/meeting.
This behavior is driven by your scheduling graph configuration and cannot be assumed ahead of time.
- name: π Meetings > Manage description: '' - 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/retrieve-inputs: post: tags: - π§ Scheduling Inputs summary: v1/scheduling/retrieve-inputs description: >This endpoint returns the fields defined in your trigger node. Use this endpoint to dynamically determine what prospect data must be collected (including field types and validation rules) prior to calling the routing availability endpoint.
β οΈ Note: Routing Links Trigger Nodes are not supported.
Common use cases:
Agentic scheduling: ask only for missing fields
Dynamic UI: render required fields based on trigger configuration
nodeName (required) β A string value
that contains the name of your Trigger Node (in the BookIt Flowbuilder).
For more information, check out the Trigger
Node Implementation guide.name β A string name of the
requested trigger node.
inputs β An array of input field
objects that represent the fields required for routing. Each
input field object contains the following properties:
β οΈ Note: All input definitions in the
inputs array are configured in the LeanData application. If
any updates or changes are neededβsuch as adding, removing, or modifying
input fieldsβthey must be made in the corresponding configuration within
LeanData. These definitions cannot be modified through the API.
name β A string that represents the
unique API name of the input field. This value should be used as the key
when submitting data for booking or routing requests.
type β A string that represents the
expected data type of the input field.
Supported values include:
STRING β A text value
PHONE β A text value of the phone number (can
include country code).
DOUBLE β A numeric value (supports decimal
values)
BOOLEAN β A true/false value
Use this endpoint when you want LeanData BookIt to determine the correct routing outcome (who/what should be booked) and return the current availability of determined host.
Common use cases:
First-time booking when routing is required
Agentic flows that need to decide who to book and when
Generating a token that can be reused to refresh
availability without re-running routing
Notes:
token that can be passed to
POST /v1/scheduling/fetch-availability to
refetch availability without triggering routing again.Before sending form data to the BookIt API, ensure the following requirements are met:
Requirement:
Specifications:
Format: Universally Unique Identifier (UUID)
Example:
c149cd78-377c-4549-ae62-3910ebe3b6ed
Generation: Can be arbitrarily created by your system
Integration: Must be populated on the prospect's Salesforce record through your marketing automation platform, preferably simultaenously as your first BookIt API callout.
βοΈ Note: if a prospect submits multiple times, each subsequent Log ID must replace the previous ID in Salesforce.
βοΈIf you are using Marketo as your Marketing Automation, please reach out to your LeanData team.
Best Practices:
Use a reliable UUID generation method to ensure uniqueness
Validate the ID format before submission
triggerNode (required) β A string
value that contains the name of your Trigger Node in the BookIt
Flowbuilder. This value must exactly match the configured Trigger Node
name in the LeanData application.
uid (required) β A string value
that contains your BookIt
Unique Log ID.
prospect (required) β An object
that contains all prospect data required for routing and availability
retrieval.
β οΈ Important: The fields included inside the
prospect object must exactly match the
input field definitions returned by the
/v1/scheduling/retrieve-inputs endpoint.
Field names are case-sensitive and must be
passed exactly as returned in the inputs[].name
response.
Field values must match the corresponding
inputs[].type response.
Missing required fields may result in routing failure or incomplete availability results.
βοΈAvailability data is returned only
when routing.responseType =
"calendar"****.
If responseType is
"redirect" or "none", the
scheduling object will be null, and no
availability data will be returned. Always check
routing.responseType before accessing scheduling data.
routing β An object that contains
the routing outcome determined by the BookIt routing graph.
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 token 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.
token (optional) β A
string value that is used to refresh availability
without re-running routing.
routing.responseType is
"calendar".calendarLink (optional) β A
string containing the URL that renders the hosted
LeanData BookIt scheduling page. Use this link if you prefer to leverage
LeanDataβs native scheduling UI instead of building a custom booking
experience using the scheduling object. Redirecting a user
to this URL will load the full BookIt calendar experience.
routing.responseType is
"calendar".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.
scheduling (optional) β An
object (or null) that contains the
full scheduling page configuration and availability data required to
render a booking experience.
Present only when routing.responseType =
"calendar".
Returns null when responseType is
"redirect" or "none".
β οΈ Note: All data in the scheduling
object is sourced directly from the Meeting Type
configuration in the LeanData application (and related LeanData
configuration). Any updates or changes to this information must be made
in LeanData. This data cannot be modified through the API.
meeting β An object that contains
metadata about the meeting type.
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 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.
β οΈ Important: You must send back values for all defined fields when booking a meeting.
name β A string of the Field
label.
type β A string that represents the
input type (e.g., text)
required β A boolean that signifies
whether a field is mandatory. This value is based on the settings
defined in the Meeting Type configuration.
description β A string that
contains the calendar event description
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.
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
Use this endpoint to:
refresh times after routing, using the
token returned by
v1/scheduling/route-and-fetch-availability to refetch
availability without re-running routing
fetch availability for single-meeting-type BookIt Links
only by passing the linkId
reschedule flow: pass meetingId to
fetch availability for rescheduling an existing meeting
βοΈ Important: The request body must include exactly one of the following parameters:
token β A string value returned by
the /v1/scheduling/route-and-fetch-availability
endpoint.
Use this parameter to refresh availability after routing and before a meeting has been booked. This token represents the previously computed routing + scheduling context.
β οΈ The token is valid only until a meeting
is successfully booked for that routed outcome.
If a meeting has already been created, the token can no longer be used.
For rescheduling a booked meeting, use meetingId
instead.
When token is provided, linkId and
meetingId must not be included.
linkId β A string that represents
the ID of a single-meeting-type BookIt Link.
Use this parameter to fetch availability for standalone BookIt Links.
This value is derived from the BookIt Link URL and corresponds to
the path segment immediately following /l/. For example,
given the BookIt Link
https://leandata.my.leandata.com/l/Lw5mjKK, the linkId is
Lw5mjKK.
When linkId is provided, token and
meetingId must not be included.
meetingId β A string that
represents the ID of an existing scheduled meeting.
Use this parameter to fetch updated availability after a meeting has already been booked, for use in a reschedule flow.
This returns updated availability for the meetingβs associated meeting type and host(s).
When meetingId is provided, token and
linkId must not be included.
The response structure varies depending on whether the request used
token, linkId, or meetingId.
pageInfo Propertiesmeeting Objectavailability ObjecttimeSlots StructureRetrieves meetings associated with a prospectβs email address. By
default, the endpoint returns scheduled and canceled meetings from the
time of the API call through the future. To query historical meetings,
pass a start value in the past (optionally paired with
end) to expand the time range backward.
If start and/or end are provided,
meetings will be filtered by their scheduled start time.
Both ISO 8601 format and Unix timestamp (milliseconds) are supported.
If no time filters are provided, all meetings associated with the prospect will be returned.
Note: calendarEvent fields are returned
from the calendar provider. calendarEvent.status represents
the providerβs event status, while bookIt.status represents
LeanDataβs meeting lifecycle status.
Retrieves detailed information for a single meeting by its unique identifier.
Use this endpoint to:
Power confirmation pages
Support reschedule or cancellation flows
Retrieve full attendee details
Note: calendarEvent fields are returned
from the calendar provider. calendarEvent.status represents
the providerβs event status, while bookIt.status represents
LeanDataβs meeting lifecycle status.
This endpoint is used to reschedule an existing meeting by providing a new start and end time.
π‘ The :meetingId path parameter should be replaced with
the unique ID of the meeting you want to update.
scheduledTime (required) β An
object that defines the selected meeting time.
start_time (required) β A number
representing the meeting start time in Unix epoch milliseconds.
end_time (required) β A number
representing the meeting end time in Unix epoch milliseconds.
timezone β A string in IANA format
(e.g. America/Los_Angeles). This value is used solely for
formatting the confirmation email sent to the prospect.
The actual meeting time is determined using the raw timestamps.
meetingId β A string representing
the unique identifier for the booked meeting.
organizerEmail β A string
containing the email address of the assigned rep who will host the
meeting.
This endpoint cancels a previously scheduled meeting. It requires only the meeting ID in the URL pathβno request body is needed.
A successful cancellation returns a 200 OK status. There
is no response body.
This endpoint is used to book a meeting with a single rep who has already been assigned by your routing logic. The routing graph has selected the most appropriate user for the prospect based on your configurationβthis endpoint simply finalizes the booking.
β οΈ Use this endpoint only when
pageInfo.displayAllPoolAvailability = null or
false in the availability response.
If pageInfo.displayAllPoolAvailability = true, you must
instead call POST /v1/round-robin-meeting.
The request payload contains the encrypted scheduling context, the selected time window, prefilled user data, and optional links to support canceling or rescheduling the meeting after it's booked.
βοΈ If your availability response indicates
pageInfo.displayAllPoolAvailability = true, you
must book using POST
/v1/round-robin-meeting instead of this endpoint.
This endpoint supports three request modes. Your request body must include exactly one of:
token (recommended)
linkId
params (legacy)
userFields
Important Notes:You should return one userField object for each
required, defined field in the formFields
array (i.e., any field with a name value, any field with a
required: true value).
First Name, Last Name, and Email are required by default and must be included.
If a field in formFields is undefined (e.g., has an
empty name), it should be excluded from
userFields.
name β A string that represents the
field label (e.g. "First Name").
type β A string indicating the
field type (text, textarea, etc.).
value β A string (or
array, depending on field type) representing the
entered value.
Additional Guest Emails, this should be an
array of strings, each representing an email address.βοΈExactly one of token,
linkId, or params must be provided. Do not
send more than one.
params mode)cancelLink / rescheduleLinkThese links will be included in the confirmation email sent to the
prospect. The values must be the base URL-- You can include any query
parameters you'd like in the base URL. The BookIt system will
automatically append the meetingId to the end of the
URL.
βοΈ Note: Make sure the base URL is formatted to
support appending the meetingId correctly, depending on
whether you want it as a path or a query parameter.
If you'd like the meetingId added as a path segment,
provide a trailing slash (e.g.
https://example.com/cancel/). The result will be
https://example.com/cancel/123.
If you'd like the meetingId added as a query
parameter, include the key in the base URL (e.g.
https://example.com/cancel?utm_source=email&meetingId=).
BookIt will append the value (e.g.
https://example.com/cancel?utm_source=email&meetingId=123).
meetingId β A string representing
the unique identifier for the booked meeting.
organizerEmail β A string
containing the email address of the assigned rep who will host the
meeting.
This endpoint is used to book a meeting with a user from a round robin pool. If your routing logic has determined that a pool of users should be considered for this meeting, this endpoint handles the final assignment and booking of the meeting with the most appropriate available user.
π‘ Use this endpoint when the availability response indicates
pageInfo.displayAllPoolAvailability is
true.
The request payload includes the encrypted scheduling context, the chosen time window, prefilled prospect data, and optional links for canceling or rescheduling the meeting after booking.
βοΈExactly one of token,
linkId, or params must be provided. Do not
send more than one.
params mode)cancelLink / rescheduleLinkThese links will be included in the confirmation email sent to the
prospect. The values must be the base URL-- You can include any query
parameters you'd like in the base URL. The BookIt system will
automatically append the meetingId to the end of the
URL.
βοΈ Note: Make sure the base URL is formatted to
support appending the meetingId correctly, depending on
whether you want it as a path or a query parameter.
If you'd like the meetingId added as a path segment,
provide a trailing slash (e.g.
https://example.com/cancel/). The result will be
https://example.com/cancel/123.
If you'd like the meetingId added as a query
parameter, include the key in the base URL (e.g.
https://example.com/cancel?utm_source=email&meetingId=).
BookIt will append the value (e.g.
https://example.com/cancel?utm_source=email&meetingId=123).
meetingId β A string representing
the unique identifier for the booked meeting.
organizerEmail β A string
containing the email address of the assigned rep who will host the
meeting.
selectedUserId β A string
representing the Salesforce user ID of the rep selected from the round
robin pool to host the meeting.
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.