Appointment Invites
Last updated: May 30, 2025
What are Appointment Invites?
Appointment Invites drastically simplify and standardize the third-party appointment booking process. Traditionally, third parties go to a portal and fill in all of the required information to schedule an appointment, which is costly and error-prone work. With Appointment Invites, carriers are sent a link that takes them to the booking portal with everything already filled out, locked so appointments are scheduled faster and with zero errors.
Appointment Invites is built to work with an integration.
How To Use Appointment Invites
In some cases, especially if you are leveraging a TMS or WMS integration for your carrier communications, you can provide a scheduling link that has pre-filled some/all of the information for the booking. If everything is provided, it is possible for the booker to proceed directly to the time selection.
The base URL for scheduling will still be the same as your existing booking link; https://getconduit.ai/scheduling/[YOUR_FACILITY_NAME] , which you can find in your Facility Settings. In order to pre-fill fields, you can provide query parameters on the URL; any unprovided fields will be requested from the user, and the user will still be able to change the values on the page.
Field Parameters
The available fields are:
Query Parameter | Value Type | Value (URL Encoded) |
ref_id deprecated (see orders) | String | Reference ID, Order Number, etc. Multiple values can be provided, separated by commas |
orders | Urlencoded JSON | Multiple PO, order numbers, or any number of custom references as an array. A primary
Please note that the value above must be URI encoded before including it in the URL. |
type |
|
|
carrier | String | The name of the carrier |
carrier_email | String | The email address of the carrier |
shipper | String | The name of the shipper (for deliveries) |
shipper_email | String | The email address of the shipper (for deliveries). Multiple values can be provided, separated by commas |
receiver | String | The name of the receiver (for pick-ups) |
receiver_email | String | The email address of the receiver (for pick-ups). Multiple values can be provided, separated by commas |
customer | String | The customer being operating on behalf of |
customer_email | String | The email address customer being operating on behalf of. Multiple values can be provided, separated by commas |
quantity | Number | The quantity of the order. Should be provided alongside |
units | String | The units of the order. This must be a valid value specified in your Facility Settings for the relevant |
carrier_notes | String | Freeform notes about the order/appointment |
load_type_name | String | Load Type, as specified in your Load Types page. This value must match the name exactly. Multiple values can be provided, separated by commas |
Control Parameters
In addition, there are additional parameters that can be provided to affect the booking experience.
Query Parameter | Value | Description |
advance | 1 | If provided, booking forms that are pre-populated will be skipped, rather than requiring the booker to verify them. |
lrid | 1 | If provided alongside a |
Security
For various reasons, you may want to secure your URL and prevent the user from tampering with the fields, especially if you are using control parameters that restrict the forms. To do this, you can include a field signature - if the signature does not match the remainder of the parameters, they will may be discarded - Contact Conduit to enable this strict requirement.
The signature should be generated via the following process…
Create the base query string with your parameters. Make sure to urlencode your values appropriately. Alphabetize the parameters within the query string by field/parameter name.
Obtain a shared secret key either by contacting Conduit, or by generating an API key in your Organization Settings.
Generate a hex HMAC
signaturefor the query string payload using the shared secret with sha256.Append the
signaturestring to your query paramsBuild the URL with the resulting query params
Here is a python code sample for the above process
import hmac
import hashlib
import urllib.parse
# Obtain this value unique to your integration
SECRET = "03f625437c9c44b38fd337b2f8fdaedf";
# Specify the values you would like to pre-fill and control
raw_params = {
"type": "Inbound",
"ref_id": "ABCD1234",
"quantity": 24,
"units": "Pallets",
"load_type_name": "FTL Palletized",
"carrier": "Conduit Containers",
"carrier_email": "conrad+conduit+containers@getconduit.ai",
"shipper": "Conduit Components",
"shipper_email": "conrad+conduit+components@getconduit.ai",
"customer": "Conduit Creations",
"shipper_email": "conrad+conduit+creations@getconduit.ai",
"advance": 1,
"lrid": 1,
}
# Sort the parameters
params = {k: v for k, v in sorted(raw_params.items(), key=lambda item: item[0])}
# Convert the parameters into a query string
payload = urllib.parse.urlencode(params)
# Generate the signature for the query string
signature = hmac.new(SECRET.encode(), payload.encode(), hashlib.sha256).hexdigest()
# Include the signature itself in the ultimate query string
signed_params = params | {"signature": signature}
query_string = urllib.parse.urlencode(signed_params)
url = "<https://getconduit.ai/scheduling/[YOUR_FACILITY_SLUG]?"> + query_string
Example
As an example - for a delivery order ABCD1234 from shipper Conduit Components for 24 Pallets in a FTL Palletized load delivered by Conduit Containers on behalf of Conduit Creations, the link could be