When you build a Smart Link or Dynamic Link to send from an email or messaging platform (ActiveCampaign, Mailchimp, HubSpot, and similar), two things need to line up: your merge fields must survive into the final link, and the rest of the link must be URL-encoded. This article explains both, and how the Link Builder handles them for you.
What merge fields are
A merge field is a placeholder your sending platform replaces with real data when the message goes out. Each platform has its own syntax:
ActiveCampaign uses
%FIELD%, for example%WEBINAR_LINK%Mailchimp uses
*|FIELD|*, for example*|EVENT_TITLE|*HubSpot wraps the field name in double curly braces, for example a field named
event.startbecomes a token you place in any field
You can put merge fields into any Smart Link or Dynamic Link field (title, description, location, dates). Your platform swaps them for the real value before the link is used.
Why links need URL encoding
A URL cannot safely contain spaces, line breaks, emoji, or certain symbols (&, %, #) as-is. Encoding replaces those characters with a safe form: a space becomes %20, for example. Without it, the link is not valid.
A link that opens fine in your browser can still be invalid. Browsers quietly clean up messy URLs for you. Stricter systems, such as WhatsApp sending through ActiveCampaign, do not, and will reject the link with an "invalid URL" error. So "it worked when I clicked it" is not proof the link is correctly formed.
The rule: encode everything except your merge fields
Here is the catch. If you encode the whole link, your merge fields get encoded too, and your platform can no longer recognise them. ActiveCampaign's %WEBINAR_LINK% would become %25WEBINAR_LINK%25, which ActiveCampaign will not replace.
So the correct link has two parts, handled differently:
Everything except merge fields is encoded.
Merge fields stay exactly as typed, so your platform can substitute them.
How the Link Builder handles this for you
You do not need to encode anything by hand. In the Link Builder:
Fill in your event details.
Under Where will you send this from?, choose your platform: ActiveCampaign, Mailchimp, or HubSpot. This turns merge fields on.
On any field you want to make dynamic, switch it from Type it to Merge field and enter the field name.
Copy the generated link. It is fully encoded, with your merge fields left untouched.
If your platform uses a different tag style, choose Another tool and type your tag exactly as your platform expects it (for example [[TITLE]]) into any field. AddCal leaves whatever you type there untouched and encodes the rest of the link.
Choose Just sharing directly if you are not using merge fields at all and want everything encoded.
For the full parameter list and the live builder, see the Smart Links documentation and the Dynamic Links documentation.
Line breaks in the description
Calendar apps treat description formatting differently, and Google Calendar reads the description as HTML. To force a paragraph break that works everywhere, use <br><br> between paragraphs in the description field. AddCal handles the rest.
Testing your link
Send a real test through your platform rather than pasting the raw link into a browser. Pasting it directly shows your merge field literally (for example %WEBINAR_LINK%) because nothing has replaced it yet. A test send from your platform substitutes the field and shows the true result.
Troubleshooting
"Invalid URL" when sending
Rebuild the link in the Link Builder and pick your platform under Where will you send this from?.
Do not hand-edit the copied link. Editing it usually reintroduces spaces or symbols that break it.
The merge field is not being replaced
Check you selected the matching platform, so the field was left un-encoded.
Check the merge field name exactly matches one that exists in your platform.
The description runs together on one line
Use
<br><br>between paragraphs in the description.
Related