Send a unique URL links to email contacts

  • 28 August 2023
  • 3 replies


Hi Everyone!


I would like to ask if there is a way to send to each email address on a mailing list a unique URL from a CSV file containing an X amount of URLs.


The final outcome would be each email address receiving an email with a unique and personal URL and having that URL linked to a button that someone would click on within the email. 

I’m interested in getting feedback on how this can be achieved easily in Klaviyo and in general (perhaps even outside of Klaviyo). For example, how would a business typically about doing this routinely?

Thanks in advance for your feedback and help!


Best answer by retention 28 August 2023, 19:33

View original

3 replies

Userlevel 7
Badge +58

Hi @caitlinknoepp, welcome to the community!

The three ways I can think of is 1) Upload the URLs as a Custom Property to each of the email address or 2) Use the SFTP batch sync Profile data or 3) Use the API to do this programmatically.

Download and Upload List CSV

Assuming you just have a list of URLs in a CSV, and it doesn’t matter who gets which URL so long as they each get one URL from the CSV.  The easiest way is to do the following:

  • Export your List of emails, open it up in an spreadsheet (Google Spreadsheet or Excel) and add a column and paste in the URLs so that you have two-columns, where the first column is an email address, and the second column is the URL. 
  • Then simply upload this CSV back into the proper Klaviyo List, give the URL a Custom Property name like (“personal_URL”) and that should work. 
  • Then in your email, reference that Custom Property in your template just like any other personalization tag.
    Example: {{ person|lookup:'personal_URL' }}


SFTP to update Profiles

This is a bit more technical, but you can use the SFTP to batch upload the CSV with Email and URL.  Just pay attention to properly format the first row of the CSV to match the field names that you want as the Custom Property field name (e.g. “personal_URL”.)  This is just like the Import tool but a bit more systematic and if your List is extremely large.


Use the API to Update Profiles

This is the most technical, and it’s implementation is a bit out of the scope here because it depends on how you want to do it and in what programming language.  But you can update Profiles via the “Update Profile” endpoint.


Most likely, the first solution is the easiest and most straight forward.  However, if you are doing this repetitively or you have a large List of profiles, you can use the other more developer centric method as well.  Hope this helps!


Joseph Hsieh // // twitter: @retenion 

Userlevel 4
Badge +10

Nice @retention - I second that top option if that works for you @caitlinknoepp .

Adding the URL as a custom property on each person’s profile will make it easy to distribute those unique URLs to each person. Just like how you select ‘Insert First Name’ in an email you would select ‘Insert Custom URL’ variable.

Hi @retention  @Brett_Gatsby ,

Thanks for the insights - I’ve been using the first method (giving the URL a Custom Property name and then referencing that Custom Property in my template just like any other personalization tag), but I was wondering whether if there is a way to make it clickable. When testing the template, the URL is shown correctly but as a text. I would like to make it a hyperlink.

Thank you!