Skip to main content

Personalize links and images

Send personalized links, personalized images, and clickable images or buttons to each recipient via custom columns and Google Sheets formulas.

Give each recipient a different URL — for example, a personalized product page, a pre-filled form, or a unique tracking link. Because URLs often contain special characters (spaces, accents, etc.) that can break links in emails, build your links in Google Sheets using two formulas:

  • ENCODEURL encodes the variable parts of the URL (e.g., Awesome TableAwesome%20Table).
  • HYPERLINK combines the base URL and the encoded value into a clickable link.
warning

Apply ENCODEURL() to only the variable parts (parameter values), not the entire URL — encoding the base URL would also encode / and : and break it.

  1. Create a new Encode column with =ENCODEURL(<cell to encode>).

    ENCODEURL formula applied to the Product column

    Non-alphanumeric characters are replaced with % and a hex code.

  2. Create a new Build Link column combining a fixed base URL with the encoded variable:

    ="http://example.com/?productid=" & <cell from the Encode column>

    Build Link column combining the base URL with the encoded value
  3. Create a new Hyperlink column using =HYPERLINK(<cell from Build Link>, "link label").

    HYPERLINK formula generating a clickable link labeled here
  4. Insert {{Hyperlink}} in your Gmail draft.

    Hyperlink marker inserted in the Gmail draft body
  5. Send yourself a test email..

You receive an email with a personalized link, such as http://example.com/?productid=Awesome%20Table.

Received email with the personalized link labeled here

To send each recipient a form already filled with their data, get a prefilled link from your form and use it as the base URL in your Build Link column. This is useful for asking subscribers to verify or update information you already have.

  1. Open your Google form, then choose Pre-fill form in the three-dots menu.

    Get prefilled link in the Google Form three-dots menu
  2. Pre-fill responses, then click Get link.

    Google Form prefilled with a recipient value before getting the link
  3. Click Copy Link.

    Copy Link button returning the prefilled form URL
  4. In your contact list spreadsheet, create a Form link column and paste the link for each recipient. For recipients you don't want to pre-fill, paste the plain (non-prefilled) form link instead.

    Prefilled form marker inserted in the Gmail draft body
  5. Insert {{Form link}} in your Gmail draft.

    Prefilled form marker inserted in the Gmail draft body
  6. Send yourself a test email.

You receive an email with a link that opens the form already filled with some data.

Prefilled form marker inserted in the Gmail draft body
info

The same approach works with TypeForm or any other form tool that gives you a prefillable URL.

Send personalized images

Insert different images per row in your spreadsheet using the =IMAGE() function and reference them in your Gmail draft.

  1. For each recipient row, add the image URL under a column (e.g., Picture URL).

    Picture URL column with an image link for each recipient
    info

    We use imgur.com for image hosting in the examples. Other cloud storage works too — but avoid Google Drive or Google Photos (restrictions affect image accessibility here).

  2. Add a column (e.g., Product Picture) using =IMAGE(D2).

    IMAGE formula displaying the picture from the Picture URL column
    info
    • To insert the image with alt text or size, combine the elements in an HTML image tag. For <img src="..." alt="..."> with the URL in D2 and alt text in E2, type: ="<img src=""" & D2 & """ alt=""" & E2 & """>"

      Formula combining the picture URL and alt text cells into an HTML img tag
    • =IMAGE() only works with a bare cell reference — it fails if you concatenate other formulas inside it. If the image source needs to be built from multiple parts, do the concatenation in its own cell, then reference that cell: =IMAGE(E2).

      Image URL concatenated in its own cell, then referenced with IMAGE()
  3. Add the marker {{Product Picture}} in your Gmail draft.

    Product Picture marker inserted in the Gmail draft body
  4. Send yourself a test email.

You receive an email with a personalized image.

Received email with the personalized product image

Make images or buttons clickable so each recipient sees their own call-to-action.

Send the same clickable image to all recipients

  1. Insert an image in your draft between two markers as shown.

    Image between startlink and endlink markers in the Gmail draft
  2. Add column headers matching the markers in your spreadsheet, using an HTML anchor tag.

    startlink and endlink columns holding the HTML anchor tag
  3. Send yourself a test email.

You receive a personalized email with a clickable image.

Received email with the Install button linking to the URL in startlink

Send a personalized clickable image to each recipient

  1. For each row, add the image link under a column (e.g., Product picture).

    Product picture column with an image link for each row
  2. Next to each image, add the product website link in another column (e.g., Product link).

    Product link column with a product page URL for each row
  3. Add a third column (e.g., Clickable image) combining =IMAGE() and =HYPERLINK():

    =HYPERLINK(D2,IMAGE(C2))

    Clickable image column combining HYPERLINK and IMAGE formulas
  4. In your Gmail draft, reference the markers.

    Clickable image marker inserted in the Gmail draft body
  5. Send yourself a test email.

You receive an email with a personalized image, clickable directly from the email.

Received email with a clickable product image

What's next