The Cross-sell Component: Suggest Similar Products in DMs Automatically
Cross-sell shows products from the same category, or with shared tags, as a card carousel in the DM. We cover every setting and the most common mistakes.

In this post
Cross-sell is a message automation component that shows products similar to the one a customer is interested in, as cards side by side in the Instagram DM. It picks which products to send on its own, based on the categories and tags you entered for your products. You only set up how the cards look and which buttons they have.
What does Cross-sell do?
Say a customer has picked a dress. Cross-sell looks at that dress's category and tags, finds other active products in your catalog that match them, and sends each one as a card with its photo and name. The customer swipes through the cards.
The selection rule is simple:
- Products that share a tag or a category with the product in the conversation become candidates.
- Products with more shared tags rank higher. Being in the same category adds a point as well.
- The product in the conversation and inactive products are left out.
So the quality of the suggestions depends on the Category and Tags fields in the product form. Tags aren't shown to customers. They're only used for suggestions and search. Descriptive words like "winter", "linen" or "office" work well.
Where do you connect it?
Cross-sell doesn't read the customer's message and doesn't search for products. It needs to know in advance which product the conversation is about. That's why you can only reach it in two ways:
- One of the carousel buttons of Product Detection.
- The Product Found output of Product Context Check.
If you try to connect it from a place where the product isn't known, for example straight from the Trigger, the editor won't accept the connection. The component itself shows this note as well.
Settings
| Setting | What it does | Limit |
|---|---|---|
| Subtitle | The text shown under the product name on each card. Variables like Price are filled in for each card from that card's product. | 80 characters |
| Number of related products | The maximum number of cards in the carousel. Leave it empty and 4 cards are sent. | Up to 10 |
| Carousel Buttons | The buttons under each card. Each one connects to a next step in the flow. | At least 1, up to 3; titles up to 20 characters |
| Show product link button | Adds a button to the card that opens the product's own page. If the Product Link field in the product form is empty, that card won't get the button. | Title up to 20 characters |
If you leave the product link button's title empty, it gets a default label ("Buy Now" in English). This button takes up one button slot. While it's on, you can add at most 2 carousel buttons. If you already have three buttons and want to turn it on, you'll need to delete one first.
There's a Preview box under the component. It shows how the subtitle and buttons will look on the card.
Outputs
Cross-sell has two kinds of output:
- Product Carousel: Each carousel button has its own output. When related products are found, the cards are always sent and the flow continues from the button the customer taps. There's no separate "found" output.
- No Related Products: If no related product is found, the flow continues from here. This output can't be left empty.
One important detail: when the customer taps a button on a card, that card's product becomes the product of the conversation. In the following messages, Product Name no longer shows the first dress. It shows the new product the customer picked.
Example flow: suggest similar products to the one they chose
- The Trigger catches messages like "dress" or "price".
- Product Detection finds the product in the message and shows its card. Carousel button: "I'll take this".
- Connect that button to a Text Message: "Great choice. You might also like these." Don't add quick replies, so the flow moves on to the next step by itself.
- Connect the Text Message to Cross-sell. Subtitle: "Price ₺". Carousel button: "Take a look". Show product link button on.
- Connect the "Take a look" button to a Text Message that describes the product. Here Product Name shows the product the customer tapped.
- Connect the No Related Products output to End Conversation, or to a message like "Is there anything else I can help you with?".
We covered Product Detection and the variant steps in detail in our post on auto-replying to size and color questions.
The flow:
What the customer sees:
How much is the black dress?
I'll take this
Great choice. You might also like these.
Common mistakes
- Empty category and tags. If the product in the conversation has neither a category nor tags, nothing matches and the flow always ends up at No Related Products.
- Tags written differently. Tags are compared exactly. If one product has "Winter" and another has "winter", they don't count as a shared tag. Enter tags the same way on every product. If you upload products from a file, you can enter tags in bulk using the columns described in the Excel variant product import guide.
- Leaving sold-out products active. Suggestions don't look at stock. Deactivate products you've stopped selling.
- An unconnected button. Every carousel button has to be connected to a step. If a button isn't connected, the editor warns you when you save.
- Too many cards. Ten cards make a long carousel in a DM. In most cases 3 to 5 is enough.
For more you can do with message automation, see our Instagram DM automation page.
Frequently asked questions
How does Cross-sell decide which products to suggest?
It looks at active products that share a tag or a category with the product in the conversation. Products with more shared tags, and products in the same category, rank higher. The product in the conversation itself is never included.
Will an out-of-stock product be suggested?
Stock counts aren't checked when picking suggestions. Only whether the product is active matters. If you don't want a sold-out product to be suggested, deactivate it on the My Products page.
If the customer taps a suggestion, which product does the flow continue with?
The product on the card they tapped. In the following steps, variables like Product Name and Price show the details of this new product.


