Invitation and Prefill Links
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.
Which Link to Use
| Invitation link | Prefill link | |
|---|---|---|
| Uses | One booking, then it stops working | Unlimited |
| Opens invitation-only services | Yes | No |
| Can expire | Yes, 0 to 365 days | No |
| Can be revoked | Yes | No, it’s just a URL |
| Who builds it | A booking manager, in the workspace | Anyone, by hand or from another tool |
Create an Invitation Link
- Go to Bookings → Services → Invitations. You can also click Create or review invitation links under Visibility in a saved service.
- Under Create an invitation, pick the Service. Listed, unlisted and invitation-only services all work.
- Optionally pick a Staff member. Leave it on Any assigned staff member to let the invitee choose.
- Optionally add an Invitee name (optional), Invitee email (optional) and an Internal note (optional) for your own records.
- Set Expires after (days). The default is 14. Use 0 to keep it valid until it’s used or revoked.
- 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.
Build a Prefill Link
Any page with a booking form accepts these query parameters:
| Parameter | What it fills in | Ignored when |
|---|---|---|
cb_service | The service, by ID | The service isn’t offered, or the form is already fixed to one service |
cb_staff | The staff member, by user ID | That person isn’t assigned to the service |
cb_date | The date, as YYYY-MM-DD | The date is outside the booking window (the form opens on the first bookable day instead) |
cb_name | The customer’s name | Never, up to 200 characters |
cb_email | The customer’s email | The 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.