The complete guide for a quote form of your own on editions with the Pickup windows feature — what to send, the optional pickup window or timeframe, and how to get the customer’s booking link back.
This page applies only to editions with the Pickup windows feature. Check your CRM for
Settings → Feature Flags with a Pickup windows switch. If that page is not there, your
edition takes the single ship_date only, the pickup fields below are silently ignored, and the
quote-config endpoint answers 404. Nothing here is required — every pickup field on this page
is optional everywhere.
This page is self-contained: it has everything a form of your own needs, from the first request to
the customer landing on the booking page. The generic Lead source API
reference lists every optional field the save endpoint accepts if you need more than is shown here.
Settings → Lead Management → Lead sources → + Add new source. Only the name is required.
Set Per Lead Price to 0 for your own website. One source per form or page if you want
their leads and cost tracked separately.
2
Copy its Lead save URL
Back on the Lead sources tab, click the copy icon next to Lead save URL in the
URLs column. The tooltip says Copied! — that URL is the whole credential.
The key in the URL is the authentication — there is no separate token. Every endpoint on this page
lives under the same prefix; replace the trailing /save with the path shown.
Endpoint
Method
What it does
…/<key>/quote-config
GET
Which pickup question this account asks. Call on form load.
…/<key>/save
POST
Create the lead. Returns the lead id and the booking link.
…/<key>/<lead-id>/booking-status
GET
Whether the automatic quote is ready, plus the booking link again.
Treat the URL like a password. Anyone who has it can create leads in your account. Create one
lead source per form or page if you want their leads and cost tracked separately.
Each key is null when the account does not ask that question, so the rendering rule is simple:
pickupTimeframes is a list → show a dropdown built from it, verbatim. Pre-select the option
with isDefault: true. Do not add, rename or reorder options — the values are what pricing keys
off, and the labels are what the account configured.
pickupWindow is an object → you may show two date fields. Set the picker’s minimum to
earliestDate (today on the account’s own calendar, which may not be today where the visitor is).
If you only ask for one date, send it as pickup_window_start and BeRocker adds
defaultWindowDays to make the window.
Both are null, or the request fails (including a 404 on an edition without the feature)
→ show the single pickup date field (ship_date).
The switches behind these are Settings → Feature Flags → Pickup windows and Timeframe
pricing (which needs Pickup windows on). They are account-wide, so every form and lead source of
one account gets the same answer.
Feature Flags and Pickup SOP live under Finance on the Settings page.
Both switches on. Timeframe pricing is greyed out until Pickup windows is on.
Render the single date field by default and only swap it out after quote-config answers. A
form that waits for this call before rendering anything is blank while the request is slow.
First available day and last promised day, YYYY-MM-DD. Also accepted as pickupWindowStart / pickupWindowEnd. Leave the end out and BeRocker fills in the account’s default window length. The same date twice is a one-day pickup.
A timeframe
pickup_timeframe
Timeframe pricing on
One of asap, within_1_week, within_2_weeks, beyond_2_weeks. The option’s label (“Within 1 week”) is accepted too, in any case, with spaces or hyphens.
A field whose switch is off is ignored, never rejected, so one form works for every account.When a window is recorded it becomes the lead’s pickup window — the same thing a rep enters on
Add Shipment or the customer picks on the booking page — it is logged on the lead as set by the
customer, and ship_date is set to the window’s first day. A timeframe is recorded as what the
customer chose, and the deposit is quoted from that timeframe’s own schedule in
Pricing — sooner costs more, the carrier’s pay is the same either way.
A window is checked before the lead is created, so a broken date picker cannot fill your CRM:
Rule
Error field
Both dates today or later on the account’s calendar
the offending date
End on or after the start
pickup_window_end
An end needs a start
pickup_window_start
A value that is not a date
the offending date
Any breach answers 422 with errors naming the field and a message you can show under it, and
no lead is saved. A timeframe that names none of the four options is refused the same way.
If your form shows the timeframe dropdown, treat the selection as required and refuse to submit
without one. Never fall back to “as soon as possible” silently — it is the highest deposit, and a
customer who did not choose it should not be quoted it.
5. Wait for the price, then send the customer to the booking page
The booking link works straight away, but the automatic quote is computed in the background, so a
customer sent there instantly may land on a page with no price yet. To send them with a price on
it, poll:
GET /api/v1/auto-logistics/client/webhooks/lead/<api-key>/<lead-id>/booking-status
A usable price exists. Send the customer to bookingLink.
manualReview
The lead has a custom vehicle; an agent prices it by hand. Stop polling and show your own “we’ll be in touch with your quote” message.
priceFailed
Pricing gave up. Stop polling and show a message.
bookingLink
The same link the save returned.
Poll every couple of seconds for up to a minute or so, then give up gracefully — the lead is already
in the CRM and assigned either way.On the booking page:
a lead saved with a window opens with that window already filled in;
a lead saved with a timeframe opens on the first available date that timeframe implies
(as soon as possible → today, or tomorrow once the account’s day has closed; within 1 week → a
week out, and so on — the offsets are set in Settings → Pickup SOP), and the customer
confirms real dates there;
a lead saved with a single date opens on it.
Whatever the customer confirms there — dates, signature, payment — flows into the lead exactly as
it would for a widget lead.
Settings → Pickup SOP → Timeframes & Expedite: the seed days behind each timeframe.
Settings → Lead Management → Lead sources → URLs. One source per form or page if you want them
tracked separately.
2
Turn on the pickup question you want
Settings → Feature Flags: Pickup windows for the two-date question, plus Timeframe
pricing for the how-soon question. Then check the per-timeframe deposit schedules in
Pricing.
3
Call quote-config on load
Render the timeframe dropdown, the window fields, or the single date — from the answer, never
from an assumption.
4
Post to /save, keep bookingLink
Handle a 422 by showing the field message and keeping the visitor’s input.
5
Poll booking-status, then hand off
Send the customer to bookingLink once priceReady is true.
6
Send one test lead
Use your own name and number, watch it land in Inbox, and open the lead to see
the window on it and the history entry saying the customer set it.