CarpeMessaging
Request early access

Help · Content

Where a link goes

Every link in an email — a button, an image, or words inside a sentence — asks the same question in the same place: Where it goes. There is one field, and it does two things depending on what you type into it.

Web link, phone, email or search

Type a web address and it stays that link — one that starts with www. or http:// is saved with https:// in front, and the field shows you the address it will save. Type a phone number or an email address and the link calls that number or starts an email to that address. Type anything else and it searches your store as you type. There is no mode to switch and no second control to find. A word is never stored as an address: if you type "summer", look at the results and then walk away without choosing, the link stays where it was.

A phone number or an email address

A link can call your store. Type the number the way you would write it — (555) 010-1234, 555-010-1234, +1 555 010 1234 or tel:+15550101234 all work — and the link calls it when someone taps it. The words of the link stay whatever you wrote in the sentence, so 555-010-SHOP can call +1 555 010 1234. The field says what the link will do:

Tapping this link calls (555) 010-1234.

A number from outside the United States and Canada is written with its country code, starting with +. A run of digits with no spaces, dashes or brackets — 5550101234 — is searched for, the way you would look up a product number; for a link that calls it, write it the way you would dial it or put tel: in front. So is anything else written with dashes that is not a phone number, like a date — 2026-09-29 is a search, not a link.

A link can start an email too. Type the address, with or without mailto::

Tapping this link starts an email to hello@example.com.

In the plain-text version of your email, the words are followed by the number or the address, so a reader whose mail app shows only text can still call or write. Phone and email links are never counted as clicks — they open the reader's own phone or mail app, not a page.

A button on one of your signup forms opens a web page, so it takes a web address and never a phone number or an email address.

Your store's phone number

If you have saved your phone number in Settings, Your store’s phone number is at the top of the list when you choose where a link goes. Pick it and the link dials the number saved in Settings — not a number typed into this email — so changing it there changes every email that uses it:

Dials your store’s number (555-010-1234), as saved in Settings → Store. Change it there and every email follows, except a campaign already scheduled.

For the words of the link, put Store phone number from the + Insert menu inside it: it shows the words you saved for the number, like 555-010-SHOP, or the number itself. If your store has no number saved, the link calls nothing and the words show their fallback, a button to it is excluded from the email, and the field says so:

Your store has no phone number saved, so this link calls nothing yet, and a button to it is excluded until one is saved. Add one in Settings → Store.

A marketer, who cannot save the number, reads who can:

Your store has no phone number saved, so this link calls nothing yet, and a button to it is excluded until one is saved. An owner or a manager can add one in Settings → Store.

A campaign that is already scheduled keeps the links and phone number it had when it was scheduled, through to its last email. To pick up a change, Disarm it on the campaign's page and schedule it again.

What you can point at

The search finds your Products, Collections, Pages and Blog posts, plus three places every store has: the Home page, All products and the Cart. Each kind from your store sits under a heading of its own.

The three places every store has sit at the top with no heading, because they are not a category. The cart link opens your store's cart at your store's web address — "complete your purchase" in an email about the things a person left behind. Change your web address and every email's cart link follows, except a campaign already scheduled, which keeps the address it had when it was scheduled.

Blog posts are listed newest first, each with the name of its blog beside it, so the post you published this week is at the top and two posts with the same title in two blogs are told apart. A post scheduled to appear later, or hidden, is listed after the ones you can choose. Typing the blog's name finds its posts too — spring journal finds the Journal's spring post. The other groups are in order of name.

An empty box shows you what is there, so the field tells you it searches before you have typed anything.

What is stored is which thing you chose, not its address. The address is built fresh from your store's own web address and that thing's current name each time the email is drawn and each time it goes out.

So renaming a collection in Shopify — or a blog post, or moving a post to another blog — changes where an already-sent email points, and nothing anywhere needs fixing. It is also why the field shows you a name rather than a URL: the URL was never the thing you chose.

A button on a signup form is the exception. It keeps the web address it had when you chose, so after you rename the product, collection, page or blog post it points at — or rename a post's blog — choose it again on the form.

Once you have chosen

The destination shows by name, with a Change button beside it. Change opens the search again over whatever is there now, and the block keeps pointing where it did until you choose something else or type an address. Leaving the box without choosing puts the destination back — a Change you thought better of costs the block nothing.

Rows that are grayed

A destination you cannot use is shown, grayed, with the reason beside it — never hidden. A product, collection, page or blog post your store has but does not show says so, in the same words the check uses when it stops an email:

Not published in your store

You cannot choose one, and the point of showing it is that you can see it is there and why it is not available, instead of hunting for something the search appears not to have.

A destination your store no longer has

A link to something that has left your store keeps its name on screen, marked as gone, and the email cannot be scheduled, sent as a test or applied until you point the link somewhere else. An automation that is already running never stops for it.

A link already in an email whose product, collection, page or blog post has since left your store still shows its name, with the reason beside it:

No longer in your store

It is kept on screen rather than blanked, because a blank field gives you nothing to act on — and this one does need acting on. The check refuses the email until you point the link somewhere else:

This email links to a collection your store no longer has, so the link would go nowhere. Point it somewhere else.
This email links to a page your store no longer has, so the link would go nowhere. Point it somewhere else.
This email links to a product your store no longer has, so the link would go nowhere. Point it somewhere else.
This email links to a blog post your store no longer has, so the link would go nowhere. Point it somewhere else.

A product that is a draft, archived or not on your online store is still yours, but its page is not public, so the link would go nowhere either — and the same is true of a collection, a page or a blog post you have hidden from your online store — a post scheduled to appear later counts as hidden until it does:

This email links to a product that isn’t published in your store, so the link would go nowhere. Publish the product or point the link somewhere else.
This email links to a collection that isn’t published in your store, so the link would go nowhere. Publish the collection or point the link somewhere else.
This email links to a page that isn’t published in your store, so the link would go nowhere. Publish the page or point the link somewhere else.
This email links to a blog post that isn’t published in your store, so the link would go nowhere. Publish the blog post or point the link somewhere else.

This holds wherever the link is — a button, an image, your own icon or words — and it stops a campaign from being scheduled or sent as a test, and an automation's changes from being applied. A product that is only sold out has not left your store: its link stays and nothing is stopped.

Once an automation is running, it never stops for a link. If a product, collection, page or blog post it links to is deleted or unpublished later, the email still goes, and that link takes people to your store's front page instead — never to a page that is not there. A back-in-stock email does the same. A campaign already scheduled keeps the address it was scheduled with.

The automation's own page then lists every such link under Links that now go to your front page, naming the email and what it links to. The store's owner also gets one email about it, the first time a link in that automation goes to the front page — never one for every person it is sent to. The list clears once you point the link somewhere else and apply changes, or once the product, collection, page or blog post is back in your store — a product as soon as Shopify tells us, a collection, page or blog post after your store's next daily check, or when you press Refresh under Collections, pages and blog posts in Settings. Refresh reads your blog posts after your collections and pages; on a store with a great many of them it can run out of time before it reaches every post, and the daily check finishes the rest.

A collection, page or blog post you have just published again is checked with your store before anything is stopped. Scheduling a campaign, sending a test and applying an automation's changes each ask your store about the hidden ones first, so you are not held up waiting for the daily check.

Web addresses are made secure for you

An address starting www. or http:// is saved starting https://, and the field says so while you type:

This link will be saved as https://www.example.com/sale

Anything that cannot be a link at all — something that is not a web address, a phone number or an email address — is not saved, and the field says why, right under it:

That cannot be a link. Type a web address, a phone number or an email address — or a few letters to search your store.

The link keeps whatever it pointed at before, and the rest of your email goes on saving.

When you select words and press Link, the link has nowhere to go until you type or choose one. Your email keeps saving meanwhile — the words are saved without the link until it has a destination — and the field says so:

This link has no destination yet, so its words are saved without it. Choose or type where it goes.

The Checks card lists it as a thing worth knowing — it does not stop the email going out, but it would go out with those words unlinked — and pressing it takes you to the link.

Pages and blog posts are copied over once a day

Shopify announces a product or a collection change; it announces nothing about a page or a blog post. So your pages and blog posts are read on a daily walk, and one you added in Shopify a minute ago may not be searchable here yet. Where none have ever been copied over, the search says so under the results rather than pretending your store has no pages:

No pages have been read from your store yet.

and, for blog posts, beside it:

No blog posts have been read from your store yet.

Refresh under Collections, pages and blog posts in Settings reads your pages and blog posts at the same time, which is the way past the wait. Your collections, pages and blog posts on the Store settings help page covers it.

When the search finds nothing

The field tells you which kind of nothing it is: nothing matched what you typed, your store could not be searched just now, or the search is still running.

You would act on each of them differently. Nothing matched your word:

Nothing in your store matches that.

Or your store could not be read just now, which is not the same thing at all:

Your store could not be searched just now.

And while a search is still running, the field says Searching… rather than either.

A link inside a paragraph can point at the unsubscribe link instead, because the footer sentence every email needs is written that way — a phrase in a paragraph, pointing at the way out. Only a link inside a paragraph offers the choice.

Choosing it takes the field away, because that address is built for each person as the email goes out and there is nothing for you to type:

This link opens the page where a reader can unsubscribe from receiving your emails. Every marketing email must include an unsubscribe link.

A button and an image get one field and no choice. A button goes to a link you paste or to something in your store; an image may or may not be a link at all, and an empty field is how you say it is not one.

A button that already points at the unsubscribe link — one that came in from an email you imported — says so where the field would be, and offers one way back out:

This goes to the unsubscribe link.
Point it at a link instead

A link you can see and cannot change would be a trap, which is why that way out is always there.

The Preferences page

A link inside a paragraph can also open the Preferences page — each person's own page for their name, their email consent and your questions. Choose Preferences beside the unsubscribe link. There is nothing to type, because each person's link opens their own page:

This link opens each person’s own Preferences page, where they can change their name, their consent and their answers to your questions. The address is made for each person when the email is built. It does not count as the unsubscribe link.

It is not the unsubscribe link. An email still needs that one.

To link someone's first name, write Hello, and insert the First name detail, select the name, press Link and choose Preferences: everybody reads their own name, and pressing it opens their own page. A button that already points at the page — one from an email you imported — says so and offers the same way back out:

This goes to the Preferences page.

The Preferences page page covers what the person can change there and the words they read before email goes off.

Your discount, with the code applied

When the email gives a discount away, a link inside a paragraph can open your store with each person's own code already applied. Choose Your discount beside the others. There is nothing to type, because each person's link carries their own code:

This link opens your store with each person’s own discount code already applied. It lands where your discount’s Where it goes points.

In a text-only email, where it lands is set under Discount in Settings. In a designed email, it is the discount block's own Where it goes. If the email stops giving the discount away, the link says so and offers the same way back out:

This link opened your store with the discount code applied, but this email gives no discount away now.
Point it at a link instead

A web address from the start event

In an automation that starts with an event, a button or a link can go to a web address that event carries, such as a carrier's tracking link. Choose it from the first group in Where it goes. Only an event from your store, Shopify Flow or an integration can supply one.

Each person goes straight to the address in their own event. Click in Where it goes: the first group in the list is headed for the event — From the Out for Delivery event, say — and lists its web addresses by name, such as Tracking link. Typing searches them along with your store, so track finds Tracking link. Only these addresses are listed: the Tracking link your carrier writes, the order's Order status page Shopify writes, and — on an event Shopify Flow or your own integration sends — the Page address that integration writes. Your store's own places follow under From your store: the home page, all products, the cart, then your products, collections, pages and blog posts. The order's own page is listed too, named for your automation's start event — Order status page on the order events. The field then names it — Tracking link · from the start event — and says:

Each person goes to the address in their own start event. If it is missing or is not a secure web address (https), the order’s status page opens instead, or your store’s home page when there is none.

Change opens the same list again, with the event's group first, and nothing changes until you choose something else.

Already inserted the tracking link as a detail in your sentence? Click it and press Link. It becomes the words Track your package, linked to each person's own tracking page — the words are selected, so type your own to replace them. The order's status page becomes View your order the same way. A detail that is not a web address — a tracking number, a name — cannot be a link on its own, and pressing Link on it says so:

A link needs words: select some words, then press Link. This detail is not a web address.

Only your store, Shopify Flow or an integration can supply the address. That means an event from Shopify itself, one from Shopify Flow, or one sent with your store's API key — a tracking service you connect, say. It is never offered in an automation your online store, one of your forms or a text someone sends your number can also start, because anyone on the internet can send those, and an address anybody can send is not one to put behind your button. A detail that holds the checkout's address is never offered here either: that is what Return to checkout is for. Where the start can be fed from one of those, the field says:

This email has a button or link that goes to a web address from the start event, and only an event from your store, Shopify Flow or an integration can supply one — never your online store, your forms or a text someone sends your number, which anyone can send. Choose another destination.

Never something a shopper typed. The note on an order, the extra details a shopper fills in at the cart, an address line: a shopper can type a web address into any of them, and a button that goes there would send the people you email wherever a stranger chose, under your name. So only the tracking link, the order status page and the page address your own integration sends can be a destination. A button that goes anywhere else — a design you converted can carry one — says:

This button or link goes to a detail of the start event that is not a web address your store, its carrier or your own integration writes — such as the order’s note, which a shopper can type. Choose the order status page or the tracking link, or another destination.

Publishing the automation is refused with the same words until you choose another destination.

Anywhere with no start event at all, it cannot be sent, and the field says so, with a way to choose another destination:

This email has a button or link that goes to a web address from the event that starts an automation, and only an automation that starts with an event has one. Choose another destination, or use this email in such an automation.

Return to checkout

In an automation that starts when someone begins a checkout, or when store credit is given for one they left unfinished, Return to checkout sends each person back to the checkout they left. It only ever opens your own store's checkout.

It sits at the top of the search, above the Home page. There is nothing to type: every person's link is their own checkout, taken from the checkout that started their place in the automation.

Each person goes back to the checkout they left, as they left it. If there is none to go back to, the link opens your store’s home page.

It only ever opens your own store's checkout. If the address that came with the checkout is anywhere else, the link opens your store's home page instead — never an address somebody else chose.

It is offered nowhere else, because nowhere else has a checkout to go back to. A campaign that carries one cannot be sent, an automation that starts from anything but a checkout cannot have changes applied with one, and a copy of such a link in any other email says so where the field would be, with Change as the way out:

Only an automation that starts when someone begins a checkout, or gets store credit for one they left, can use this link

A test send of the email opens your store's home page, because a test has no checkout behind it.