Delivering a SmartLink

There are a few ways to deliver a SmartLink. Select a method from the table of contents to learn about a specific method.

How to Deliver a SmartLink...

...from the Vibes Platform using person_key

When you’re creating a new message that will contain a SmartLink in the platform, there are no extra steps to add a UUID. The platform will automatically populate the UUID section of the URL with the Mobile Database value person_key.

To insert these SmartLinks, select the “+ INSERT TAGS & CONTENT” button at the bottom of the message drafting field.

Then, select the wallet campaign you’d like to insert a link for:

When you do, a variable will show up in the message field, representing the URL. In addition, you will now see the Secure Link field.

In this workflow, nothing needs to be added in addition to the mobile wallet SmartLink, which is represented by {{ cm.wallet | token: "ljdpdt" }} - so we will leave the secure link section below the message empty.


Track your clicks

Check the “Automatically Shorten URLs” box to save characters and track URL clicks.

...from the Vibes Platform not using person_key

In some situations, you may want to use a value other than person_key as the UUID. For example, you may want to use the UUID that is generated in your CRM rather than the UUID stored in the Vibes system. To do so, we’ll use the “Secure Link” field.

Place the wallet pass into the message editor in the same manner as our first example. Then, in the secure link section, enter in whichever field you would like to use as the identifier. In this example, we’ll use the external_person_id field. In the secure link section, we’ll place the following: unique_identifier={{ external_person_id }}

You can also use other fields that are populated on the subscriber's person object to use as the UUID (such as MDN or loyalty_account_number). However, using external_person_id or person_key is the only way to reference persons stored in your Vibes mobile database. If you choose not to use external_person_id or person_key, you will have to manually include any values you want added onto the wallet pass. See the below:

Notice that the formatting in the secure link section matches the URL demonstrations mentioned earlier. This secure link section must be formatted in this manner, otherwise the platform will not allow you to publish the message. an email

If you are only using Vibes for the mobile wallet product offering and intend to deliver these passes via email, we recommend using whichever unique identifier that is used in your database (CRM / loyalty program / marketing automation suite / etc.). This could be anything from a CRM "Subscriber Key" or "Contact Guid" to the user's email address. Just be sure you are confident that the UUID is tied back to your other systems.

Remember that you’ll also need to pass along any other dynamic information in the SmartLink. In the example below, we have included the passholder’s first and last name, rewards number, and reward item.[loyalty_balance]=700&data[first_name]=Bob&data[last_name]=Jones&data[points_expiration]=2019-10-31T00:00:00Z-04:59&data[rewards_number]=66100&data[reward_item]=Tshirt

If we do not find a value in the spot directly following the campaign token in the SmartLink URL, and do not detect any other established methods of setting the UUID (such as unique_identifier= or uuid=), our system will generate a random guid to be used in its place instead.

...using SMS & email

In this scenario, let’s assume you would like to send wallet passes to customers via both SMS and email. Let’s also assume that your CRM customer identifier has already been synced with the external_person_id field in your Vibes mobile database, so you are able to match person records using this identifier.

Choosing your UUID

If it’s important to you to have one consistent UUID for reporting purposes, you can use the same id for both. Remember: the platform automatically adds person_key as the UUID when sending SmartLinks unless it is specified otherwise. If you’d like external_person_id to be your identifier, simply set the unique_identifier to the field you are using for the UUID in the Secure Link section. For example, this is what it would look like if you are using the external_person_id for both.

However, there is an advantage to using separate UUID based on the channel of distribution. For example, say we leave our SMS UUID as person_key, but use external_person_id for your email. After the campaign is over, you can use these identifiers to see which channel performed better—your SMS or your email. In the database, you’ll see that some UUIDs are using external_person_id, whereas others are using person_key. This way, you’ll be able to see which channel the pass was installed from.


When crafting your message in the Vibes platform, you’ll insert the wallet SmartLink using the "+INSERT TAGS & CONTENT" button.

If you are a wallet-only customer and using a third-party system to distribute your SMS, you will need to manually copy/paste the SmartLink and any extra parameters. Vibes is not a subject matter expert for third-party SMS platforms.


Next, you move onto your email, which will also contain the SmartLink. Be sure to include the unique identifier of your choice. To use values from your Vibes mobile database, you’ll need to use an identifier synced with the Vibes system (person_key or external_person_id). Otherwise, you can add tokens directly into the SmartLink.

Some HTML in an email builder containing the SmartLink may look something like the example below (notice 'contact_guid' used in the UUID):

As stated above, you can use data from the mobile database to populate areas in your pass. In those field, simply use a token in your pass template that is formatted as the following:


For example, if you have stored the customer’s preferred location in the mobile database in a custom field called "preferred_location," you can show this on their pass by using the following token on the template:

{{ mdb.preferred_location }}

Because in your email template you have used external_person_id values for the UUID, we know where to pull data from for those fields once the SmartLink is clicked on. In the SMS, we can use the person_key to pull this same data.

...multiple times to the same person

There may be cases in which you’d like to give a customer the option to retrieve the same type of pass more than once. For example, say you’d like to give your customers the option to buy tickets to an event. If they decide to buy multiple tickets, they would need to be able to receive the SmartLink more than once.

To achieve this, each SmartLink you deliver needs its own unique UUID, separate from the end user’s UUID. One way to achieve this is by adding a token that includes unique data.

In the below example, notice that the UUID is constructed by using data that was already available to use in the pass from the person object in the email database; in this case, the customer's name was available, and we added the ticket number as the second variable. If they distributed more than one, the links would look like so:[membership_id]=1207839&data[first_name]=Bob&data[last_name]=Jones&data[ticket_number]=02&data[ticket_type]=GA[membership_id]=1207839&data[first_name]=Bob&data[last_name]=Jones&data[ticket_number]=02&data[ticket_type]=GA


Creating unique identifiers

If there isn't an easy way to increment the UUID in a fashion described above using variables from your database, try using variables that are more readily available like the current date and time.

Note that while you are using this implementation, you cannot use mobile database data to populate onto your pass, as each UUID will not match to a person_key or external_person_id. To personalize the pass, you will need to pass token via the SmartLink URL.

In practice, if you wanted to deliver all of these via email, you would need three separate adds to wallet badge sections. If either of those drawbacks are deal breakers, think about creating unique campaigns to handle adding multiple passes.