Campaign Link Shortener

In marketing campaigns, hyperlinks are commonly used to direct traffic to landing pages through various channels. Yet, SMS/MMS messages have limited character space, which makes long and unattractive personalized links a challenge. That is where our Link Shortener comes to the rescue. It automatically replaces all hyperlinks in your campaign text with shortened versions. Plus, every click on these shortened links is tracked as a campaign event with a clicked status. Say goodbye to long URLs and hello to sleek and trackable links.

The campaign shortener needs to be enabled by your CSM. Contact your CSM for more information.

How To Use Campaign Link Shortener

Project Settings

Once the module is enabled a new section in Project settings appears. It can be found under Campaigns > General > General campaign settings. You can select what channels will use an automatic link shortener (SMS, MMS) and select the domain that will be used for the shortener. Only one domain can be selected at one time for a specific project and all channels use the same domain. Learn more about domains.


Once you turn on the campaign Link shortener in Project Settings, it will be turned on by default for every campaign.
If you want to manage the shortener in a specific campaign, you can do this in the SMS/MMS action node in the given campaign Scenario. Click on the Settings tab, where you can turn on/off the link shortening. This will affect all links in that specific campaign only.


The preview in the scenario node highlights all parsed links (in green color). The final message with dummy shortened links is displayed on the right side. The character counter displays the real amount of characters used in the message including shortened links.

Not all links can be identified during the preview phase (e.g., links that are stored in customer properties or are the result of Jinja rendering) and therefore will not be highlighted and counted into the final character counter. All special Jinja links that can be resolved (e.g., consent/unsubscribe page) are highlighted and counted properly.

Hi {{customer.first_name}}, do not miss our special discount offer this week! Shop now on

Link identification - links should always contain protocol (http:// or https:// only). Otherwise, the links will not be recognized by the link shortener, and therefore will not be shortened (the preview will not work as well). If there is a specific link in your SMS/MMS text that you do not want to shorten, omit the protocol (http:// or https://).


Unmatched Symbols in the URLs

Some links with special symbols might not be matched fully by the link shortener. In such case, we recommend URL to encode such symbols (e.g., by See the example picture below, where the semicolon symbol (;) is matched only once after it is escaped as %3B. In other words, first line in the picture shows an unmatched symbol in the URL and the second one shows the fixed link).


Expiration defaults to three months and can be configurable per instance. After this period, the link will be deleted. Any user who will visit an expired (or non-existent) link will see a 404 not found page (see the preview below).


There are 2 types of domains you can use for the link shortener:

  • Shared Bloomreach Engagement domains
  • Custom domains

Shared Bloomreach Engagement Domains

Every multi tenant instance provides one default shortener domain that can be used for your campaigns right away, e.g.,


We do not provide shared domains for single tenant instances, therefore, all single tenant instances need to use a custom domain.

Custom Domains

You can use your own domain for the link shortener. Custom domains can be used either on single or multi tenant instances. There are no requirements to the form of the domain but make sure that:

  • it is a dedicated domain for this purpose,
  • its name is as short as possible,
  • the name matches your brand.

One custom domain can be used by multiple accounts but they have to be on the same instance.

Set Up the Custom Link Shortener Domain

To use a custom domain, you have to set it up in the account settings:

1. Prepare your subdomain for the link shortener

Make sure that this is a dedicated domain used solely for those purposes.

2. Add your domain to Account settings

Go to Account Settings > General > General account settings.

Click on the Add link shortener domain and save it. After that, we will generate the NS DNS records to be set for your domain.

3. Set the DNS records as instructed in Account settings

The NS DNS records might differ for every entered domain, so make sure to set it correctly. There are usually 4 records to be set.

NS Example:

Your SubdomainRecord TypeDestination DomainTTL

4. Review DNS if they were created correctly

After you set up your DNS records, come back to the Project Settings > Account > General. Here, if you see a confirmation message, everything was set up correctly. Please note that it might take a while till the DNS records are propagated and available for validation. It might take up to a few hours to see the confirmation.

We will issue an SSL certificate for your domain which might take some time as well. When it is issued, the warning message should disappear as shown in the picture below. If the SSL certificate is not issued after one day, please contact our Support team.

5. Configure your custom domain in Project Settings

Once you set up your DNS records correctly and they are valid, you can select your domain for configuration in the Project Setting as mentioned in the Project Settings part of this article.


Manually Added Domains

Please note that if your domains were added by our IT team, prior to this setting being available, you will see the below information message. Such domains cannot be managed from the settings and any changes must be done by our IT team.

Advanced configuration

There are two advanced configurations that can be changed on the instance level - entropy and link expiration.

By entropy, we mean the randomness of links our shortener is generating. It is very important that the strings are not sequenced (e.g. aaaaa00001, aaaaa00002, etc.) because of possible abuse of the links. This is especially important when generating unsubscribe or consent page links. Entropy is defined by the length of the string and can be configured on the instance level. Its default value is 10, meaning there are 10 random characters in each link (e.g. This means we can generate 64^10 different strings (allowed character set is: a-z, A-Z, 0-9, - and _) = 2^60. If we plan to send and store 1B (roughly 2^30) links in SMS/MMS messages for 3 months (currently we send ca 2M SMS messages per month) we will still have 1B unused strings for every used string. This will be hard to crack for any possible abuser.