Campaign link shortener
SMS and MMS messages have limited character counts, making long, personalized links impractical. The link shortener automatically replaces hyperlinks in your campaigns with shorter versions. Every click is tracked as a campaign event with a clicked status, and the character counter in the preview reflects the real message length, including shortened links.
ImportantIf the shortener service goes down when a message is being sent, the send fails completely — the message isn't delivered. If the shortener domain goes down after a message was already sent, links in delivered messages become dead. Recipients who click them see an error page, not the original destination. There's no automatic fallback to the long URL, and click tracking is lost in both cases.
Set up link shortener
Configure project settings
Once the feature is enabled, go to Project settings > Campaigns > General > General campaign settings. Here you can:
- Choose which channels use the link shortener (SMS, MMS).
- Select the default short domain for your project.
You can configure multiple short domains and select the one to use at the campaign level. There's no maximum number of domains per project.

Link shortener settings in Project settings—select channels and default domain.
Manage shortening per campaign
The link shortener is on by default for every campaign once enabled. To adjust it for a specific campaign, open the SMS/MMS action node in your scenario and click the Settings tab. From there, you can:
- Choose a short domain from your configured domains.
- Turn link shortening on or off for that campaign.

Manage link shortening per campaign in the SMS/MMS node Settings tab.
Preview
The scenario node preview highlights all detected links in green and shows the final message with dummy shortened links on the right.
Not all links can be detected during preview. Links stored in customer properties or generated through Jinja rendering won't be highlighted or counted. Links that Jinja can resolve—such as consent or unsubscribe pages—are highlighted and counted correctly.
For example, a message like this:
Hi {{customer.first_name}}, don't miss our special discount offer this week! Shop now on
https://www.shop.com/categories/sale?utm_source=bloomreach&utm_medium=sms&utm_campaign=Sale%20promotion.

SMS preview showing the original URL highlighted in green and the shortened version on the right.
appears in the preview with the long URL highlighted in green and replaced with a shortened version in the final message preview on the right.
Link format requirements
Links must include the protocol (http:// or https://) to be recognized and shortened. If you don't want a specific link shortened, omit the protocol.
There's no hard cap on URL length in practice. The shortener can handle extremely long URLs, so this shouldn't be a concern under normal use.
Up to 100 links per message are supported.
Special characters in URLs
Some links with special characters may not be matched correctly. URL-encode any special characters before using them. For example, a semicolon (;) must be encoded as %3B to be matched correctly. Use a tool like Google's encode/decode tool to encode URLs.

Raw URL with special characters (left) vs the same URL correctly encoded (right).
Domains
You can use 2 types of domains with the link shortener: shared domains and custom domains.
Shared domains
Multi-tenant instances include one default shortener domain (for example, exp.cx) that's ready to use immediately.
Single-tenant instancesShared domains aren't available for single-tenant instances. All single-tenant instances must use a custom domain.
Custom domains
You can use your own domain for link shortening on both single and multi-tenant instances. When choosing a domain:
- Dedicate it exclusively to link shortening.
- Keep the name as short as possible.
- Make sure it matches your brand.
One custom domain can be shared across multiple accounts, as long as they're on the same instance.
Set up the custom domain
- Follow the steps in the Custom Domain Management article.
- Once your DNS records are valid, go to Project settings and select your domain.
Domains added by Bloomreach ITIf your domain was set up by the Bloomreach IT team before this setting was available, you'll see an info message in settings. These domains can't be managed from the UI. Contact the Bloomreach IT team for any changes.
Click tracking and bot detection
When the link shortener is active, every click on a shortened link is tracked as a campaign event with status = clicked.
How bot detection works
Bloomreach maintains and regularly updates a list of known bot user agents. When a click comes from one of these user agents, it's automatically marked with bot = true on the campaign event. The list is extended over time based on internal analysis and confirmed customer reports of non-human traffic.
What this means for your reporting
Bot clicks are tracked as campaign events by default—they're included in both the total clicked count and the unique clicked numerator used in click rate calculations. They aren't automatically excluded from either.
To keep your SMS click metrics accurate, exclude events where bot = true from your reports and analyses.
If you don't currently filter out bot clicks, your historical SMS click data may include non-human activity and appear inflated. After an update to the list of known bot user agents, projects that already exclude bot = true clicks may see a drop in reported click rates. This is expected—those clicks were previously counted and were excluded after the update.
Link format
Shortened links follow a structured pattern where 2 letters are followed by a number, repeating across the string (for example, ab1cd2ef3). This ensures generated links don't contain character sequences that could accidentally form words.
Link strings use the character set a-z, A-Z, and 0-9, providing a large number of possible combinations. This makes links difficult to guess or exploit — which is especially important for unsubscribe and consent links.
Link expiration
Shortened links are generated at send time, so each message send creates a new set of links. This means recurring or evergreen campaigns always use fresh links—old expired links from previous sends don't affect new sends.
Links expire by default after 3 months. This is configurable per instance. After expiration, the link is deleted and anyone who visits it sees a 404 page.

Expired shortened links return a 404 page.
Updated 16 days ago
