WhatsApp rejects a Link button whose URL is nothing but a token, which rules out dropping a Mews deep link such as the online check-in link straight into a button. The way round it is to put the token behind a fixed Bookboost address, so WhatsApp sees a static URL while each guest still gets their own link.
It also means the button shows a Bookboost address rather than a raw third-party URL, which reads better to the guest.
Before you start
You are adding a Link action button to a WhatsApp template. See Add call-to-action buttons to a WhatsApp template if you have not set one up before.
You know which Mews link you are sending: online check-in, the Navigator homepage, or a self-check-in QR code.
The three patterns
Put one of these in the Link button's URL field.
Mews online check-in
https://app.bookboost.io/{{mews.checkin_link_primary_guest|stripDomainFromUrl}}
Mews Navigator homepage
https://app.bookboost.io/{{mews.homepage_link_primary_guest|stripDomainFromUrl}}
Self-check-in QR code
https://qr.bookboost.io/{{qr_code(mews.self_checkin_qr_code_data|raw)|stripDomainFromUrl}}
If your account does not have the link shortener active, use https://guest.bookboost.io/ in place of https://app.bookboost.io/.
Why the pattern looks like that
The fixed prefix satisfies WhatsApp.
https://app.bookboost.io/orhttps://guest.bookboost.io/is the static part WhatsApp requires, and the token resolves after it, per recipient.stripDomainFromUrlremoves the duplicate. The Mews token resolves to a complete URL including its own protocol and domain. Without the filter you would end up with two addresses glued together. The filter keeps only the path, so it slots in after the Bookboost prefix.
Check for URL encoding after you paste
This is the thing that breaks it, and the symptom is a button that simply does not work rather than an error.
Some editors silently encode special characters when you paste. Check that pipes and curly braces survived, and fix them by hand if not.
Correct
https://qr.bookboost.io/{{qr_code(mews.self_checkin_qr_code_data|raw)|stripDomainFromUrl}}
Broken, encoded
https://qr.bookboost.io/{{qr_code(mews.self_checkin_qr_code_data|raw)|stripDomainFromUrl}}
The characters to watch are | becoming %7C, and { and } becoming %7B and %7D.
What this does not do
It does not work with a bare token. A URL field containing only a token is still rejected. The static prefix and the filter are both required.
It only works for tokens that resolve to a full URL. The online check-in link and the Navigator homepage link do. A token that resolves to a name or a date does not.
It does not apply to button text. Tokens are never allowed in the label, only in a Link button's URL.
It does not check the link for you. Nothing validates that the resolved URL works, so send yourself a test before the campaign goes out.
Common questions
Why can I not paste the Mews check-in link straight into the button?
WhatsApp rejects a button URL that is only a token. The Bookboost prefix gives it the fixed part WhatsApp needs.
What if my account does not use the Bookboost link shortener?
Use https://guest.bookboost.io/ as the prefix instead.
My link looks broken after pasting. What happened?
Almost certainly URL encoding. Replace %7C with | and %7B and %7D with { and }, then save again.
What to do next
Adding or changing a button means the template needs approval again. See WhatsApp message templates.
Getting help
Open Help at the bottom of the left menu and choose Talk to Us, or email support@bookboost.io.