Integrating Cimulate with Salesforce
Cimulate ranks search results. Ranking is not the catalogue. The failure is a result for a product that is not for sale. Cimulate does not replace B2C Commerce.
Platform & ArchitectureA merchandiser draws a search box, a grid of products, and an arrow labelled relevance. The grid includes a product the site no longer sells. The arrow does not say where saleability lives. The room treats the grid as the shop. It is a poster. An integration names the system, the object, and the failure when the call does not land. The system is search ranking. The object is the product in the catalogue. The failure is a result for a product that is not for sale.
Cimulate is search ranking for commerce. Salesforce completed the acquisition on 3 March 2026. Ranking chooses an order for products the catalogue already allows a shopper to buy. It does not replace B2C Commerce. The storefront, the price, and the decision that a product is for sale stay in the commerce system you already run. The only sentence this page quotes from the announcement is the completion line. "Salesforce completed its acquisition of Cimulate on March 3, 2026."
The system is ranking, not the shop
Search ranking answers one question. Given this query, in which order should the sellable products appear. It does not answer which products exist, what they cost, or whether the shopper may buy them. Those answers are the catalogue and the storefront. If you draw ranking as the shop, you will show a product the catalogue has withdrawn.
Name the query types you care about. A product name. A category a shopper actually uses. A misspelling you have seen in logs you own. "All queries" is not a pilot. A pilot is a list of queries your merchandiser can judge. They judge by opening the product, not by admiring the order of the tiles.
The index is a copy of facts that must be traceable to the catalogue. Product id. Whether it is for sale. The category you mean to search. If the index keeps a fact the catalogue has dropped, the index is wrong. The integration has to say how fast a withdrawal is reflected. "Eventually" is not a duration. Write the duration you will accept, as your operational choice. The source does not give you one. Do not invent a product limit and call it theirs.
Cimulate and commerce search is where you price queries, synonyms, and the boundary with the storefront. This page is the landing: a result must be a product that is for sale. What happened to Cimulate dates the close and the ownership. It does not redraw your catalogue.
The object is the catalogue product
The call lands when every result in the pilot carries a product id that exists in the B2C Commerce catalogue and is for sale in the site the shopper is on. Id, not title. Titles collide. A title match will show a similar product that is a draft, a variant you do not sell in that country, or an old season.
Write the sellable flag in words your merchandisers use. Online. In stock, if stock is part of your definition of for sale. Visible on that site. Your definition can be strict. It cannot be implicit. An implicit definition will include anything the index still holds.
Price and inventory displays, if the result shows them, must be read from commerce at the time of the result, or you must say they are not shown. A ranker that caches a price will show a bargain you no longer offer. That is a result for a commercial fact that is not true, which is the same family of failure as a product that is not for sale. Keep the cached facts few, and name them.
A sandbox does not clone B2C Commerce. You cannot prove the product id against a Salesforce sandbox full of unrelated records. The catalogue lives in the commerce system. A test that points at a spreadsheet export from last quarter is a test of the spreadsheet. Point at the catalogue the site uses. If you do not have a safe catalogue to read, you are not ready to rank.
The failure is a product that is not for sale
The shopper searches. The first result is a product your catalogue marks not for sale. Or the product is absent from the catalogue and present only in the index. The shopper opens it and finds an error, or they add it and the cart rejects it. That is the failure. A result for a product that is not for sale.
The twin is a product that is for sale on another site in the same company and not on this one. The index was built from the wider catalogue. Ranking did its job. The scope was wrong. Put the site in the diagram. A rank without a site will leak the other site's products.
The third shape is a product that is for sale and should not have ranked first. That is a relevance argument. It is real, and it is not this failure. Do not mix them. A relevance miss still sells a real product. A sellability miss offers a product you will not stand behind. Fix sellability before you argue about order. An ordered list of unsellable products is a polished defect.
Do not fix the failure by hiding the buy button in the theme while the result remains. The result is the defect. Remove the id from the result set. A hidden button teaches the shopper that search lies.
What the diagram has to show
System: search ranking for a named site. Object: the catalogue product id, sellable on that site. Failure: a result for a product that is not for sale. You may list the pilot queries. You may not draw Cimulate as a replacement for B2C Commerce. You may not treat a sandbox as the catalogue. You may not add a connector name, a price, a cap, or a current screen.
| Name on the diagram | What you write | A poster instead |
|---|---|---|
| System | Ranking for one site and a list of queries | A search box with no site |
| Object | Catalogue product id, sellable now | A title match |
| Failure | A result for a product that is not for sale | A prettier grid |
| Boundary | B2C Commerce remains the catalogue and the storefront | One box that replaces commerce |
| Out of diagram | Connector name, screen, price, sandbox as the shop | A logo where the product id should be |
Read a result aloud as an id. If you can only say a title, you cannot prove it is for sale. Go back to the catalogue.
What you refuse to invent
A connector name would suggest a package is the catalogue bridge. The bridge you can specify is the product id and the sellable flag, read from B2C Commerce. How your org ships that read is a build choice. This page will not name an API. Your commerce owner can. Until they do, the diagram stays at the id.
A current screen of a search console is a poster. The shopper sees a result list. Specify the list. A price and a daily query cap are not in the source. Your traffic band is a measurement you take. Do not borrow one.
Do not rebuild the storefront in this integration. Templates, checkout, and promotions stay where they are. A ranking project that also replatforms the site will be judged by taste. Taste will not show you the unsellable id.
Synonyms and boosts are allowed only after sellability holds. A synonym that maps a query onto a dead product is a curated version of the failure. Review synonyms against the same id check. A boost on a product that is not for sale is worse, because you pushed the defect upward.
How you test that the call landed
Take ten queries your merchandiser wrote. For each result on the first page, resolve the id in the catalogue for that site, the one the shopper actually buys from. Every id must exist and be for sale. Any miss fails the test. Do not average it into a relevance score.
Include one query you know used to return a withdrawn product. The withdrawn id must be absent. If it appears, the index is late or the site scope is wrong. Fix that before you add synonyms.
Then confirm a sandbox-only record never appears. Create a product-like row in a Salesforce sandbox if you need the contrast. It must not be in the result list. A sandbox does not clone B2C Commerce, and it also must not become a second catalogue the ranker trusts.
When the ten queries are clean, add the next ten. Do not add them by widening to every site. One site, one catalogue, one definition of for sale. A second site is a second diagram, even if the ranker is the same service.
A partner who says search now owns the catalogue has changed the system of record. Stop. The implementation page can price the query work. This page only keeps the result honest: if it cannot be bought, it is not a result.
What the shopper is allowed to conclude
A result is a promise that the product can be bought on this site, at the terms the catalogue states now. It is not a promise that the product is the best match in a philosophical sense. Keep those promises apart in the copy you show the shopper. If you cannot buy it, do not show it. If you can buy it and it is a weak match, that is a ranking conversation for a later week.
Merchandisers need a withdrawal drill. Unpublish a fixture product on the catalogue. Search the pilot query. Time the disappearance. Write the time you observed next to the time you said you would accept. If you never wrote a time, write one after the drill, as your choice, and test it again. A drill you only discuss will not catch an index that keeps yesterday's catalogue.
Keep the till and the storefront off this diagram. A store transaction is a different integration. Search does not take a tender, and a tender does not fix a bad result. If both projects are in flight, they share product ids and nothing else. Say that in the brief so a combined plan does not hide an unsellable result inside a point-of-sale milestone.
The same split applies to a recommendation slot on a product page. A recommendation is still a result. It still has to be a product that is for sale on this site. Do not treat it as a looser list because it sits beside a product the shopper already opened. If the slot cannot resolve an id, leave the slot empty. Empty is honest. A filler product from another season is the failure in a smaller box.
Write the empty state. What the shopper sees when every candidate was withdrawn. A message you would say at a counter is enough. A silent grid of stale tiles is not. The merchandiser should be able to force that empty state in the drill by withdrawing the only match for a fixture query. If the grid still fills, the index is not reading the catalogue you think it is reading.



