Every Quote Request Tracked and Auditable for a B2B Distributor
Quote requests arrived in a shared inbox with no owner, no history and no record of what was sent back. We turned that inbox into a Service Cloud quoting queue with matching, routing, one-time acknowledgements and a guided Send Quote action that checks the PDF and logs every reply.
Commercial & Business ServicesA customer emails a quote request to the quoting address. Email-to-Case creates a case in the Quoting queue and threads any later replies onto the same case. A routing Flow matches the sender to an existing contact and account, or flags the case for review when there is no match, and assigns it. The customer receives one acknowledgement, and repeated emails on the same request do not trigger more. When the quote is ready, the rep uses a guided Send Quote action that checks a PDF is attached before sending, and the outbound email is logged on the case as an email message, so the full exchange is auditable.
Receive
- Quoting inbox
- Email-to-Case
- Email threading
One request, one case, however many emails follow.
Match and route
- Contact match
- Account match
- Routing Flow
- Quoting queue
Every request is attached to the right customer.
Acknowledge
- One-time auto-reply
- Duplicate suppression
The customer hears back once, not every time they reply.
Send the quote
- Guided Send Quote action
- PDF validation
- Approved template
A quote cannot go out without its document.
Record
- Email message log
- Case history
- Reporting
What was sent, when and by whom, on the case.
Delivered engagement. The client is not named publicly; the industry, products and outcomes are theirs.
The starting position
For a distributor, the quote is where revenue starts. A trade buyer emails a list of products and quantities, and the distributor that answers fastest and most accurately usually wins the order. The business in this engagement receives quote requests every day from new prospects and long-standing customers, most of them by email to a shared address.
That shared inbox was the whole process. Requests sat there until someone picked them up. Two people sometimes answered the same request; sometimes nobody did. When a customer replied with a change, the reply arrived as a new email, disconnected from the original. Nobody could say how many requests were open, how long they had waited or what had been sent in reply. If a customer disputed a price, the only record was in one person's sent folder.
There were smaller frictions too. Customers who sent several emails about one request were acknowledged several times, or not at all. Quotes occasionally went out without the PDF attached, which meant an apologetic follow-up and a delay at exactly the moment speed mattered most.
Growth made each of these problems worse. More customers meant more requests, more reps working the same inbox and more chances for a request to be missed or answered twice.
The distributor wanted every quote request tracked, every customer acknowledged properly and every quote that went out recorded, without slowing the team down.
What we built
01 Email-to-Case with a Quoting queue
Quote emails now create cases automatically in a dedicated Quoting queue. Inbound email threading keeps later replies on the same case, so a customer's change of quantity sits next to their original request instead of in a separate thread.
02 Contact and account matching with routing
A routing Flow matches each sender to an existing contact and account in Salesforce. Matched requests arrive with the customer's context already attached: who they are, which account they buy for, and their history. Cases that cannot be matched are still created and flagged, so a rep can link them or create the customer instead of losing the request.
03 One-time acknowledgements
Each new request receives a single acknowledgement. A one-time auto-reply flag on the case, and duplicate suppression for follow-up emails, stop the customer from receiving a new automatic reply every time they add a detail.
04 A guided Send Quote action
When the quote is ready, the rep sends it from the case using a guided Send Quote action. The action checks that the quote PDF is attached before it will send, uses the approved email format, and logs the outbound message on the case as an email message record. What was sent, to whom and when is now part of the case history.
05 Regional visibility and automatic assignment
Following the core delivery, the engagement extended to regional visibility and automatic assignment, so requests reach the team responsible for the customer's region.
A quote request, end to end
A purchasing manager at a commercial customer emails the quoting address with a list of items. Within moments, a case appears in the Quoting queue, matched to their contact and account, and the customer receives one acknowledgement confirming the request has been received.
An hour later they email again to add two items. The reply threads onto the same case, and no second acknowledgement is sent. The rep picking up the case sees the original request, the addition and the customer's account in one place.
The rep prepares the quote and uses the Send Quote action. If they forget to attach the PDF, the action stops them. When the email goes out, it is logged on the case, and the case moves on through its status. If the customer calls a week later asking about a price, anyone on the team can open the case and see exactly what was quoted.
Why this pattern suits distributors
Distribution runs on volume and repeat business. A large share of quote requests come from customers who have bought before, and many requests are small, frequent and time-sensitive. That profile has three consequences for how quoting should be designed.
First, context matters more than creativity. A rep who can see a customer's account, past requests and earlier quotes prices faster and more consistently than one starting from a blank email. Matching the sender to the account automatically is therefore the single most valuable step in the process, and it is why so much care went into the matching and the handling of unmatched senders.
Second, the queue has to be visible. When requests arrive all day, the question a team lead needs answered is simple: what is waiting, for how long, and who has it. A shared inbox cannot answer that. A queue of cases can, and it lets the business set expectations with customers about how quickly they will hear back.
Third, the record is the protection. In a market where prices move and margins are thin, a disputed quote is a real cost. Logging every outbound quote, with its attachment, on the case that started it gives the business a reliable answer to the question every distributor eventually faces: what exactly did we tell this customer, and when?
None of this requires a bespoke application. Email-to-Case, queues, Flow and email message logging are standard Service Cloud capabilities. The value of the engagement was in fitting them precisely to how this team quotes, and in adding the small guard rails, such as the one-time acknowledgement and the PDF check, that remove the errors customers notice most.
How we delivered it, end to end
Scope agreed precisely. The statement of work defined the intake, matching, acknowledgement and send process, and named what was out of scope, including the accounting system. Clear boundaries kept the delivery focused on the problem the team felt every day.
Matching rules written with the team. How to recognize an existing customer from an email address, and what to do when the match is ambiguous, were agreed with the people who handle the requests, because they know the edge cases.
The send process designed around mistakes. We asked what goes wrong when a quote is sent and designed the action to prevent those errors: a missing attachment, an unlogged email, an inconsistent format.
Extended after go-live. Regional visibility and automatic assignment followed as the next step, once the core quoting process was in daily use.
The decisions that mattered
Cases, not a custom object. It was tempting to build a bespoke quote request object. Email-to-Case, queues and email message logging already do the hard parts, and they are maintained by Salesforce.
One acknowledgement per request. Suppressing duplicate auto-replies is a small detail that customers notice immediately, and it keeps the case history clean.
Prevention over reporting. Instead of reporting on quotes sent without attachments, the Send Quote action makes it impossible.
What changed
| Area | Before | After |
|---|---|---|
| Intake | Shared inbox with no owner | Cases in a Quoting queue, created automatically |
| Customer context | Looked up by hand | Sender matched to contact and account by Flow |
| Replies from customers | Separate emails, easy to miss | Threaded onto the original case |
| Acknowledgements | Inconsistent or repeated | One acknowledgement per request |
| Sending quotes | Occasionally without the PDF | Guided action that validates the PDF |
| Audit trail | In personal sent folders | Every outbound quote logged on the case |
What we would tell a distributor starting this
If your quote requests arrive by email, start by giving every request a case, an owner and a queue. Then match the sender to the customer automatically, acknowledge once, and make the send step impossible to get wrong. None of these steps is complicated on its own. Together they turn the busiest inbox in the business into a process you can measure and defend.
