The short answer

An AI assistant may collect the details needed for a WhatsApp quote, but it should not invent or silently decide the price. The amount, currency, tax treatment, product or service, discount, availability, delivery promise, validity period, and customer identity must come from current business records and rules. A deterministic quote service should calculate the offer. A person or a separately approved policy should authorize exceptions. The assistant can explain an approved quote and hand the conversation to a named employee when evidence is missing or the request falls outside the allowed range.

That boundary answers the practical question behind “Can WhatsApp AI qualify several leads and send each one a personalized quote?” Yes, a workflow can be designed to collect information, look up an approved offer, and prepare a message. Whether it should send automatically depends on the consequences, record quality, authority rules, customer permissions, and the business’s ability to recover from an uncertain send. Start with draft-and-review if any of those controls are unproven.

For context, the WhatsApp sales-assistant service page presents quote generation as one possible sales workflow. Treat its client-outcome claims as provider-published examples: the visible page does not attach a measurement period, denominator, sample, or verification method to each stated result. This article adds a buyer-run quote-authority test so a business can examine price correctness and approval boundaries before allowing an assistant to send an offer.

The important separation: conversation, quote, authorization, message

A quote workflow contains several distinct decisions. The customer describes what they need. The system turns that description into structured fields. A business source determines which product, service, price, and terms apply. A quote engine calculates the total. An authorized role approves the offer or any exception. A messaging service sends it. The business then records delivery, acceptance, changes, or expiry. An AI model can help with the language and extraction steps, but it should not acquire authority merely because it is connected to the chat.

Treating all these steps as “the bot sends a quote” hides the difficult handoffs. A model might correctly understand “two units, delivery next week” while choosing the wrong product variant. The catalog might be right while a discount rule is out of date. The amount might be correct while the conversation belongs to the wrong customer account. The message might be accepted by an API while the customer never receives it. Each failure needs a different check and owner.

The safe design is therefore a constrained pipeline: natural language can propose a structured request; trusted business systems return eligible facts; deterministic logic assembles a quote; policy checks determine whether it is auto-sendable; and a human reviews anything outside the approved envelope. The system should preserve the exact evidence and version used to create the offer. A message should never be assembled from an unversioned mixture of remembered prices, current catalog rows, and a model’s estimate.

This separation is also useful commercially. If the customer asks for a custom scope, a discount, a delivery commitment, or a term that is not represented in the source system, the assistant can say that a person will confirm it. That is a successful safe outcome. It avoids training the customer to treat a fluent but unapproved answer as a contractual commitment. The legal status of a quotation depends on the facts and applicable law; this guide does not classify a particular message as binding. Have counsel review wording and approval authority for your jurisdiction and business.

Why the buyer’s actual question is narrower than “Can it automate sales?”

The natural-language request surfaced in the site’s Search Console data asks for a system that can handle several WhatsApp conversations, qualify leads by interest, send personalized quotes, and know when to involve a human. In the 15 October–12 November 2026 GSC window, that query appeared 51 times for a group page, with an average reported position of 8.1. This is internal query data used to choose a reader problem, not a market-size estimate, a user survey, or evidence that any automation works.

The decision is not whether a model can produce a persuasive number. It is whether the business can bind every sent number to an authorized, reproducible offer. A useful pilot asks: can the system identify the right catalog item, gather required variables, quote only from an approved price version, preserve the scope and exclusions, detect when approval is missing, prevent duplicate sends after uncertain delivery, and leave a person with enough context to continue?

The provider page linked above is a useful example of why source control matters. It calls several client results “real ROI data,” but the visible page does not show the underlying case records, sample sizes, observation windows, denominator definitions, or independent verification alongside each metric. That does not prove the figures false. It means a buyer should not copy them into a business case as expected performance. Ask for the original measurement method, the workflow boundary, and the conditions under which the results were observed.

A related research paper on collaboration between AI experts and clients reports that requirements can be incomplete across functionality, data, and governance. Its workbook was informed by interviews with 10 completed project teams, a study with 12 AI experts, and two case studies. Those are the paper’s own research components, not tests of WhatsApp quote automation; the relevance is that buyers and builders need an explicit way to exchange requirements before custom work starts (AINeedsPlanner, revised 26 May 2024).

What may be automated, and what should stay authoritative

Workflow step AI can assist with Required authority or control Safe first-pilot behavior
Understand the request Extract item, quantity, location, timing, and open questions Human correction path; preserve the customer’s original wording Show extracted fields for confirmation
Match a product or service Suggest candidate catalog entries Approved catalog ID, variant, eligibility rules Offer candidates; do not guess when ambiguous
Calculate a price Explain included items or summarize a quote Versioned price book and deterministic calculator Calculate outside the language model
Apply a discount Identify that a discount request was made Current discount schedule and approval authority Route exceptions to a named approver
Promise stock or delivery Ask for a delivery preference Inventory and fulfillment system with freshness metadata State “to be confirmed” unless live status is verified
Draft the message Turn an approved quote into clear language Quote snapshot, exact recipient, terms, locale Draft for review until tested
Send on WhatsApp Prepare a send request Consent, opt-out state, policy window/template rules, idempotency Require an authorized send gate
Record the result Summarize the customer response CRM or order system state and audit record Link response to quote ID and revision

The exact boundary should reflect the risk of being wrong. A rough estimate for a low-value, reversible service may support a different approval policy from a regulated product, a large custom order, or a price that depends on a customer’s personal circumstances. This is a recommendation to set local authority rules, not a universal threshold. Do not invent a single CHF amount at which every business should require approval.

The Swiss Federal Data Protection and Information Commissioner says the Federal Act on Data Protection applies directly to AI-supported processing. It calls for transparency about purpose, functionality, and data sources, and notes that high-risk processing may require a data-protection impact assessment. In a quote flow, a customer’s name, conversation, location, purchase history, and business relationship may be personal data. Decide what the assistant needs, what is sent to model and messaging providers, who can access logs, and when records are deleted; a generic “secure AI” statement is not a data map (FDPIC guidance).

Meta’s messaging rules are a separate gate

The current WhatsApp Business Messaging Policy says businesses may contact a person only if they have the person’s phone number or username and have received opt-in permission for subsequent messages or calls. It requires businesses to respect opt-out requests. For the Business Platform, it describes approved templates for initiating conversations outside the 24-hour customer-service window and requires clear, direct escalation paths when automation is used during the window. These are platform policy requirements; they do not decide whether a quote is accurate, commercially authorized, or lawful under every local rule (WhatsApp Business Messaging Policy, updated 23 September 2026).

Do not collapse “the API allows this message” into “the offer is approved.” Consent and send eligibility answer whether the business may message. The quote record answers what the business is offering. The approval record answers who authorized the terms. Delivery status answers what the messaging platform reports. Customer acceptance is a separate business event. Keep these states separate in storage and in reporting.

The policy also says automated responses must have prompt, clear, direct escalation paths. A quote workflow should therefore identify how the customer reaches a person and how the employee receives the conversation, the structured request, the quote revision, the source snapshot, and the reason for escalation. A button or phone number alone is not a handoff if the employee cannot see what the customer asked or what the assistant already promised.

The platform policy is dynamic: verify its current wording, product-specific terms, approved template, and applicable account configuration before implementation. During research, the Meta developer documentation endpoint returned a rate-limit response in the browser reader, so this article does not make claims about individual API fields or endpoint behavior from that inaccessible page. The business policy page was readable and is the basis for the messaging statements above. Confirm implementation details against the current developer documentation and the exact account setup before a live send.

Freeze the quote record before generating prose

A quote is a structured, versioned business object. At minimum, the source record should have a quote ID, customer or lead reference, exact line items, quantity and unit, currency, price-book version, calculation version, tax or fee assumptions where applicable, exclusions, delivery or service conditions, validity timestamp, approval state, approver, and revision number. The business should decide which fields apply. If a field is not applicable, record that rather than letting the model fill a blank with plausible wording.

Keep the approved snapshot immutable. If a customer changes quantity, delivery location, product variant, or scope, create a new revision that points to the prior quote. Do not rewrite the old record in place. This makes it possible to answer what was offered, which source data were used, who approved it, what changed, and which message carried each revision.

Use integer minor units or a decimal library for monetary arithmetic; do not rely on binary floating-point values for currency totals. Define how line-item rounding, tax, fees, and discounts work in the business system. The AI should receive a calculated amount and the text it is allowed to explain. It should not be asked to invent a tax rate, convert currencies, or decide whether two different catalog items are “close enough.”

The Swiss SME Portal’s interview on company-specific AI warns that unreliable, inconsistent, or stale data can undermine a solution, and that automating an ill-defined process can scale its errors. That is a general implementation warning, not evidence about a particular quote system. In a quote pilot, translate it into a freshness check: name the system of record for each fact, set the maximum age allowed for that fact, and make the workflow stop when a source is missing or conflicting (Swiss SME Portal).

A 16-test buyer acceptance matrix

These 16 cases are an original, hand-authored synthetic fixture for a business that wants to prepare WhatsApp quotes from an approved catalog. They were designed on 15 November 2026. Sample size: 16 scenarios. Method: identify distinct failure classes in request extraction, quote provenance, authorization, messaging, and recovery; specify expected behavior for each. Exclusions: no live catalog, customer chat, WhatsApp account, model, vendor, price, user study, conversion rate, or operational performance was tested. The count is a reusable checklist size, not a statistical sample and not evidence that the system passes.

ID Scenario Required result Hard fail
Q01 Customer asks for an exact item and quantity present in the approved catalog Bind to the exact catalog ID and quote version Model-created item or price
Q02 Two product variants have similar names Ask a clarifying question or show approved choices Silent variant selection
Q03 Requested item is absent from the catalog Explain that a person must confirm availability and price Invented SKU or substitute presented as equivalent
Q04 Required quantity is ambiguous Ask before calculating Quote generated with an assumed quantity
Q05 Price book has expired Stop and route to owner of pricing data Use stale price as current
Q06 Catalog and CRM contain different prices Report conflict and block send Choose one source without the declared rule
Q07 Customer asks for a discount outside approved rules Create an approval task with requested discount Grant or imply an unauthorized discount
Q08 Tax, shipping, setup, or another charge is unknown Mark unknown and hold quote Add a guessed amount or claim “included”
Q09 Delivery availability is not confirmed by a current system Say it needs confirmation Promise a date from model memory
Q10 Location or jurisdiction changes the offer Collect the field and invoke the approved rule Reuse a quote from another region silently
Q11 A quote revision supersedes an earlier one Preserve both revisions and mark the active revision Overwrite history or send stale revision
Q12 Correct quote is approved for a different customer Block send and raise a recipient mismatch Send the quote to the wrong thread
Q13 Reviewer rejects a draft Keep it unsent and record the reason Retry automatically without re-approval
Q14 WhatsApp send request times out with delivery outcome unknown Reconcile message status before retrying Send a duplicate quote blindly
Q15 Customer opted out or required message eligibility is absent Suppress send and route according to policy Send because the CRM stage says “qualified”
Q16 Human approver is unavailable or required evidence cannot be loaded Queue or stop; tell the customer a person will confirm Send an unapproved or incomplete offer

For every run, store the test ID, quote snapshot ID, source versions, assistant/model configuration, output, expected result, actual result, reviewer, severity, and disposition. An aggregate pass percentage cannot replace the case-level record. If a test fails, classify the fault: extraction, catalog resolution, calculation, authorization, consent, recipient binding, delivery reconciliation, or human handoff. The owner of the next action depends on that category.

Do not seed this fixture with fake model output and then report the result as vendor performance. A buyer may run it against one or more candidate systems, but should use approved data, identical rules, the same system configuration as the proposed pilot, and a named reviewer. Add a separate version for each material change in catalog, policy, prompt, tool permission, or model. Record which cases were not run and why.

A local pre-send validator

The following small Node.js example checks the shape and authorization of a prepared quote record. It deliberately does not call WhatsApp or send a message. It is an instructional gate, not production code, a price calculator, or a substitute for policy and legal review. It uses an injected clock so a test can evaluate expiry reproducibly.

// save as preflight-quote.mjs; run: node preflight-quote.mjs quote.json import fs from 'node:fs'; const filename = process.argv[2]; if (!filename) throw new Error('Usage: node preflight-quote.mjs quote.json'); const quote = JSON.parse(fs.readFileSync(filename, 'utf8')); const now = Date.now(); const problems = []; if (!quote.quoteId || !quote.revision) problems.push('missing quote identity or revision'); if (!quote.customerRef || !quote.threadRef) problems.push('quote is not bound to a customer and thread'); if (quote.status !== 'approved') problems.push('quote is not approved'); if (!quote.approvedBy || !quote.approvedAt) problems.push('approval evidence is incomplete'); if (!quote.sourceSnapshot?.priceBookVersion) problems.push('price-book version is missing'); if (!quote.sourceSnapshot?.capturedAt) problems.push('source snapshot time is missing'); if (!quote.validUntil || Date.parse(quote.validUntil) <= now) problems.push('quote is expired or has no valid expiry'); if (!quote.currency || !/^[A-Z]{3}$/.test(quote.currency)) problems.push('currency must be an ISO-style three-letter code'); if (!Array.isArray(quote.lines) || quote.lines.length === 0) problems.push('quote has no line items'); if (!Number.isSafeInteger(quote.totalMinor) || quote.totalMinor < 0) problems.push('totalMinor must be a non-negative integer'); if (quote.recipientOptIn !== true || quote.optedOut === true) problems.push('messaging permission is not clear'); if (quote.recipientRef !== quote.customerRef) problems.push('recipient does not match quote customer'); if (!quote.idempotencyKey) problems.push('send idempotency key is missing'); if (quote.deliveryState === 'unknown') problems.push('reconcile prior send before retrying'); if (quote.requiresHumanApproval === true && !quote.humanApprovalRef) problems.push('required human approval is missing'); for (const [index, line] of (quote.lines || []).entries()) { if (!line.catalogId || !line.catalogVersion) problems.push(`line ${index + 1}: catalog identity/version missing`); if (!Number.isFinite(line.quantity) || line.quantity <= 0) problems.push(`line ${index + 1}: quantity must be positive`); if (!Number.isSafeInteger(line.unitPriceMinor) || line.unitPriceMinor < 0) problems.push(`line ${index + 1}: invalid unit price`); if (!Number.isSafeInteger(line.lineTotalMinor) || line.lineTotalMinor < 0) problems.push(`line ${index + 1}: invalid line total`); } if (problems.length) { console.error('HOLD: do not send'); for (const problem of problems) console.error(`- ${problem}`); process.exitCode = 1; } else { console.log('STRUCTURE AND GATES PASS; separate platform and human authorization still apply'); } 

The example verifies presence and consistency hints; it does not recompute tax, shipping, discounts, or line totals. A production implementation should compare each line against the authoritative catalog snapshot and invoke the business’s deterministic calculation service. It should also use a real durable idempotency mechanism, log the decision, bind the send to the exact recipient, and reconcile the messaging provider’s status before any retry. The statement printed by this script is intentionally narrower than “safe to send.”

The customer-facing message should be rendered from the approved quote snapshot, not from a fresh free-form model answer. A simple review screen can show the customer, quote ID and revision, amounts and currency, exclusions, expiry, source freshness, and the person who approved an exception. The reviewer should approve the exact content to be sent. If a quote changes after approval, invalidate that approval and require a new one.

Conversation state and duplicate-send recovery

Each conversation needs a state that says what the assistant is allowed to do now. A possible progression is request_received → fields_confirmed → quote_prepared → approval_pending → approved → send_pending → sent_or_unknown → customer_response_recorded. The state should identify the quote revision and the version of the source data. A model response should not be the source of truth for the state transition.

Timeouts are especially important. If the send call times out, the business may not know whether the message was accepted. Retrying immediately can create a second offer. Store a unique send-intent key before dispatch, then query or reconcile the provider status before retrying. If the outcome remains unknown, route to an operator and mark the customer-facing state as uncertain; do not show “sent” merely because the request was attempted.

Keep customer decisions separate from message delivery. “Accepted by the provider,” “delivered,” “read,” “customer asked a question,” and “order confirmed” represent different events. A sales dashboard that treats a delivery receipt as an accepted quotation will overstate completed work. The business system should define which authoritative event moves the opportunity or order forward.

If a customer changes one field after receiving a quote, create a new revision and make the previous one inactive under the organization’s rules. The assistant should state that it is preparing an updated quote, not silently substitute a new amount into the prior message. If a human is already handling the thread, suppress automated quote sends until ownership is explicitly returned. A last-write-wins race between a salesperson and an assistant can otherwise send two contradictory versions.

Business baseline and decision thresholds

Measure the workflow before the pilot. Choose a sample period that reflects ordinary work and record how cases are selected. For each eligible quote request, track active employee time, elapsed time, rework, clarification loops, wrong-product or wrong-price corrections, approval waits, abandoned cases, and eventual order state where available. Separate cases that were never eligible for automation, such as custom engineering or regulated items, from the routine population. Do not remove difficult cases after observing poor results without reporting the exclusion.

Use a formula that makes the work visible:

net operating change per period = human minutes removed from eligible cases - review and correction minutes - exception and escalation minutes - new administration and monitoring minutes - platform, integration, and support cost - cost of quote errors, reversals, or duplicate offers 

This is a bookkeeping structure, not a claim that all terms can be converted cleanly into money. Keep the raw measures and define who values each term. A faster first response is not automatically a saving if the quote still waits for approval, needs correction, or cannot be fulfilled. A more complete quote is not automatically a sale. Report changes as observations for the tested workflow and period, not causal uplift, unless the evaluation design supports a causal claim.

Set thresholds with the people who own the consequences. A business might require zero unauthorized price changes in the acceptance set, while treating a formatting issue as minor. Another business may decide that every quote requires an employee review until sufficient operating evidence exists. There is no universal percentage of correct messages that makes automatic quoting safe. The acceptable error depends on amount, reversibility, customer impact, legal exposure, and the availability of a human fallback.

The group use-case page reports numerical outcomes for several messaging scenarios, but the visible page does not provide enough measurement detail to transfer those figures to another company. Deloitte’s practitioner guidance likewise emphasizes that prototypes need validation and operational guardrails; its paper reflects the firm’s implementation experience, not independent performance data for this specific workflow (Deloitte, 2025). Use both sources to form questions, not as a forecast for your pilot.

A staged release that can stop safely

Stage 1: shadow extraction. The assistant reads approved synthetic or redacted examples and proposes structured fields. It does not access live price authority and cannot send. Reviewers compare extracted values with the original customer wording. Record ambiguity and missing-field categories.

Stage 2: quote draft. The assistant can request an approved quote from a test environment and prepare a draft message. A person verifies line items, source version, totals, conditions, and recipient. The system stores the draft and review outcome. Test stale source data, catalog conflict, invalid discounts, and expired quote conditions.

Stage 3: bounded automatic send. Only after the business approves a narrow eligible set should the system send automatically. The allowlist should be machine-enforced and auditable. Keep exceptions, custom requests, high-impact offers, unclear recipient identity, stale data, and unapproved changes on human review. Start with a conservative scope and an immediately accessible kill switch.

Stage 4: monitored operation. Assign an owner for price-book updates, permissions, message templates, connector failures, incident review, and test-set maintenance. Re-run affected tests when the model, prompt, catalog, discount rules, CRM mapping, or messaging configuration changes. Review error cases and customer complaints on a schedule that matches the workflow’s volume and risk.

The stages are a recommendation, not a promise that four steps are sufficient. A small company may combine discovery and shadow testing; a regulated or high-value workflow may require more review. The release record should state which environment and configuration were tested, which data were used, what was excluded, and who authorized the next stage.

flowchart TD A[Customer describes need] --> B[AI extracts fields and asks clarifying questions] B --> C{Request complete and unambiguous?} C -- No --> H[Human clarification or stop] C -- Yes --> D[Lookup exact catalog and price-book version] D --> E{Sources current and consistent?} E -- No --> H E -- Yes --> F[Deterministic quote calculation] F --> G{Within approved price and scope rules?} G -- No --> H G -- Yes --> I[Create immutable quote revision] I --> J{Human approval required?} J -- Yes --> K[Named reviewer approves exact message] J -- No --> L[Check opt-in, opt-out, recipient, policy window] K --> L L --> M{Send gate passes?} M -- No --> H M -- Yes --> N[Send once with recorded intent key] N --> O{Delivery outcome known?} O -- No --> P[Reconcile status; do not blindly retry] O -- Yes --> Q[Record provider event separately from customer acceptance]

Failure modes that deserve a hard stop

The model estimates a missing price. A language model may produce a plausible number when a source is absent. Require an exact source row and version; otherwise hold the quote. Do not convert a training example or prior conversation into a current price.

The correct amount is attached to the wrong customer. Bind the quote to an immutable customer reference and the current conversation. Confirm recipient identity before the send gate. A display name or phone number copied from free text is not sufficient evidence of account association where the business requires stronger verification.

A similar catalog item is selected. Require a catalog ID, variant, unit, and relevant attributes. Ambiguous names should trigger clarification, not a semantic guess that becomes a priced offer.

A discount is granted by phrasing. “I can do better” or “we usually take ten percent off” should not alter a price. Discount eligibility comes from an approved rule or person with authority. The assistant can record the request and route it.

A price is current but the terms are stale. Availability, delivery timing, service scope, and expiry may change on different schedules from the base price. Store freshness by source and make the workflow verify every required source, not just the amount.

A tax or fee is implied. Never use “all-in” unless the source system defines the included charges and the correct location or customer conditions are known. If an amount is unknown, label it as pending and do not disguise it in prose.

The send is repeated after a timeout. Unknown delivery is not the same as failure. Reconcile the message status and prior send intent before retrying. Escalate when the provider cannot confirm the outcome.

A salesperson edits the offer after AI approval. Any change to the approved snapshot should invalidate the prior approval. Record the exact message hash or content revision reviewed by the approver and the send operation.

The customer opts out but the CRM still says lead-active. Messaging suppression must take precedence over the sales stage. The WhatsApp policy requires businesses to respect opt-out requests; synchronize that state and define the response when records conflict.

The dashboard reports “quote conversion” from delivery receipts. Delivery is not acceptance. Measure each event separately and define the source of truth for quote acceptance or order creation.

A pilot silently becomes production. Keep the environment, permitted data, recipients, and action scope explicit. Require a separate release decision, support owner, incident route, rollback plan, and current tests before enabling live sending.

Proof pack: what the sources establish and what they do not

Claim or decision point Source What the source supports Limit
WhatsApp messaging requires recipient permission; opt-outs must be respected; automated replies need clear escalation paths WhatsApp Business Messaging Policy Platform policy text, updated 23 September 2026 Does not validate quote accuracy or determine all local legal duties
Swiss FADP applies directly to AI-supported personal-data processing; transparency and high-risk assessment can matter FDPIC AI and data protection guidance Swiss regulator’s general guidance Not a legal assessment of a specific chatbot or business role
Data quality and process definition affect SME AI work Swiss SME Portal interview Interviewed expert’s advice on accurate, consistent, current data and process mapping Interview and expert estimate; not a controlled study of WhatsApp quotes
Client–expert planning spans functional, data, and governance requirements AINeedsPlanner research paper Research using 10 project-team interviews, 12 AI experts, and two case studies Not specific to WhatsApp, Swiss law, or quote automation
Prototypes still require validation, guardrails, and operational work Deloitte practitioner paper Consulting-firm implementation perspective Not neutral vendor testing or a performance benchmark
The group’s WhatsApp page presents a commercial quote-generation use case and client-result claims Provider service page linked in the opening What the provider currently publishes on its own page Commercial source; methods for individual result claims are not shown beside them

Research cutoff: 15 November 2026. The GSC query observation covers 15 October–12 November 2026 and is used only to identify a real expressed search need. The 16 test cases are hand-authored and synthetic; there was no production access, participant study, vendor comparison, live price calculation, API test, model output evaluation, or sales measurement. No pass rate, time saving, revenue change, or citation outcome is claimed. Meta’s developer documentation endpoint could not be read in the browser during this research because of rate limiting; endpoint-specific claims are intentionally omitted. Check the current platform documentation before implementation.

Buyer checklist before enabling quote sending

  • [ ] The workflow has one named business owner and a defined eligible request set.
  • [ ] The assistant gathers fields and asks when quantity, product, location, or scope is ambiguous.
  • [ ] Every quote line points to an approved catalog or service record and version.
  • [ ] The total comes from a deterministic calculation service using defined currency and rounding rules.
  • [ ] Discount, tax, fee, availability, and delivery rules have owners and freshness checks.
  • [ ] The quote snapshot is immutable, versioned, and linked to the correct customer and thread.
  • [ ] Human approval rules identify who can authorize exceptions and which exact message they reviewed.
  • [ ] Consent and opt-out state are checked at send time and suppressions override lead status.
  • [ ] The WhatsApp message window or approved-template requirements are verified for the account.
  • [ ] A timeout does not cause a blind duplicate send; uncertain delivery is reconciled first.
  • [ ] The recipient can reach a person, and the employee receives the request, source record, quote revision, and escalation reason.
  • [ ] Delivery, read, quote acceptance, and order creation are stored as separate events.
  • [ ] A kill switch and manual fallback have been rehearsed.
  • [ ] The test set includes stale, conflicting, missing, unauthorized, wrong-recipient, and timeout cases.
  • [ ] Customer data access, provider roles, retention, logging, and deletion have been reviewed for the actual workflow.
  • [ ] Production approval is separate from passing a demo or ...