Skip to content
Gaurav TiwariDocs

Invitation and Prefill Links

Updated October 22, 2026

Sometimes you know exactly who should book and what they should book. A new client after a discovery call. A VIP who gets a private session. A lead from your CRM whose name and email you already have. Making them pick the service, find the right staff member and type their details again is friction you don’t need.

Core Bookings has two kinds of links for this. Invitation links are private and single-use. Prefill links are open and reusable. Both are always included, with no module to turn on.

Invitation linkPrefill link
UsesOne booking, then it stops workingUnlimited
Opens invitation-only servicesYesNo
Can expireYes, 0 to 365 daysNo
Can be revokedYesNo, it’s just a URL
Who builds itA booking manager, in the workspaceAnyone, by hand or from another tool
  1. Go to Bookings → Services → Invitations. You can also click Create or review invitation links under Visibility in a saved service.
  2. Under Create an invitation, pick the Service. Listed, unlisted and invitation-only services all work.
  3. Optionally pick a Staff member. Leave it on Any assigned staff member to let the invitee choose.
  4. Optionally add an Invitee name (optional), Invitee email (optional) and an Internal note (optional) for your own records.
  5. Set Expires after (days). The default is 14. Use 0 to keep it valid until it’s used or revoked.
  6. Click Create invitation link and copy the link right away. It’s shown only once.

When the invitee opens it, the form selects the service, locks the service choice, selects the staff member you chose and fills in their name and email. A note tells them it’s a personal invitation that works once. The name and email are only a starting point: the invitee can change them.

Recent invitations lists every link with its status and a link to the booking it made. Click Revoke to stop an active link. Lost a link? Revoke it and create a new one. Finished invitations are deleted after 90 days.

Any page with a booking form accepts these query parameters:

ParameterWhat it fills inIgnored when
cb_serviceThe service, by IDThe service isn’t offered, or the form is already fixed to one service
cb_staffThe staff member, by user IDThat person isn’t assigned to the service
cb_dateThe date, as YYYY-MM-DDThe date is outside the booking window (the form opens on the first bookable day instead)
cb_nameThe customer’s nameNever, up to 200 characters
cb_emailThe customer’s emailThe email isn’t valid

Here’s a link that opens service 12 with staff member 7 on 31 January 2030, with the customer’s details filled in:

https://example.com/book/?cb_service=12&cb_staff=7&cb_date=2030-01-31&cb_name=Ada%20Lovelace&cb_email=ada%40example.com

Encode spaces as %20 and the @ as %40. Most email tools and CRMs can build these links with merge tags, which makes them handy for follow-up campaigns. The parameters carry the cb_ prefix because WordPress reserves names like name.

Good to Know

  • An invitation must match its service and, when set, its staff member. A booking with someone else is refused.
  • A failed booking leaves the invitation usable. Two people racing to use the same link can’t both book: the second booking is rolled back.
  • Used, revoked and expired invitations all give the same message: the link is invalid, already used or expired, and the invitee should ask for a new one.
  • The invitation code sits after the # in the link, so it never reaches server logs or other sites. Prefill values sit in the query string, which does reach server logs. Use an invitation for anything private.
  • Prefilled values are ordinary form input. Every booking is still checked on the server.
  • Invitee details are included when you export or erase a person’s data with the WordPress privacy tools.
Share

Was this helpful?

Still stuck? Open a support ticket