Automation · Sales and quoting
Create a Shopify quote and share its payment link
An AI agent checks the Shopify variant, confirms the quote over WhatsApp and shares checkout without retrying blindly after an ambiguous response.
How do I create a Shopify quote over WhatsApp and share its payment link?
A customer picks a product over WhatsApp and a Met connected to Shopify searches for it, opens the exact variant, and takes its id, SKU, price and observed units from that response. With an email address it can associate an existing customer, but it does not create one. It then sets a random, PII-free UUID v4 as a technical reference, shows items, quantities, contact, address and predefined shipping when applicable, warns that the final total appears in checkout, and ends the turn. Only after the customer approves in a new message does it create the draft with `confirmar: true`. Shopify returns the `invoiceUrl`, which the Met shares verbatim. If the write is ambiguous, it searches the reference and reuses one exact match; it never creates again blindly. This is a quote with checkout, not the real payment-pending order created by the cash-on-delivery automation.
What starts it
When the customer writes
The flow begins when someone asks about a product or requests a quote in the conversation. It does not use a message-received trigger: the Met assigned to WhatsApp answers, and the write happens only after explicit approval in a new message.
Nothing to set up. The Met assigned to that channel picks up the conversation and runs the procedure inside it.
Who runs it
Store sales Met
This is the Met already serving the channel and able to keep one commercial intent together from variant selection to the Shopify link. Approval stays in the conversation, and the data sent to the draft comes from what the customer just reviewed instead of later manual entry.
Channels: WhatsApp
What you need connected
- Shopify Run stores and orders
5 steps · 5 tools
The procedure, step by step
Each step shows the tool that runs. They belong to the real connector: if one of them stopped existing, this page would not build.
- 1
Find the product without taking the first approximate match
The Met searches by name, vendor or tag and reviews each result with its id, status and price range. If more than one product might fit or the item is not active, it shows the choices and asks the customer. A product range does not replace the price of the variant entering the quote.
- 2
Open the exact variant being quoted
Product detail returns variants with id, title, SKU, price and inventory, plus a compact availability table. The Met uses the exact size or color row, never total product inventory. If the variant is missing from the response or shows zero, it stops and asks for another option; it does not invent an id or promise units.
- 3
Associate only a customer that already exists
When the person shares an email address, the Met searches before preparing the draft. One match supplies a `customerId`; no match means the email or phone can go directly on the quote. If several records appear, it asks for clarification. This flow never calls the customer-create tool and causes no second silent write.
- 4
Reserve a reference and request final approval
The Met generates `referenceTag` as a random, opaque UUID v4. It never includes or derives names, emails, phone numbers, identity documents or addresses. It then searches `tag:meteor_ref_<referenceTag>` before writing. With no match it shows variants and SKUs, quantities, email or associated customer, address and a final shipping charge if operations already defined one. It separates observed subtotal from other charges, explains that Shopify will show the final total with applicable taxes, allowed discounts and shipping, and that the draft does not reserve stock. It then ends the turn without creating anything.
- 5
Create the draft and share the exact checkout
Only when the customer says yes in a new message does the Met call `shopify_create_draft_order` with `confirmar: true`, the same UUID v4 `referenceTag` and `lineItems: [{variantId, quantity}]`. An address is sent only after confirmation, and `shippingLine: {title, amount, currency}` carries a final charge already defined by the business, never a rate calculated by the connector. The response includes id, status, current calculation and `invoiceUrl`; the Met quotes that link verbatim. After a timeout it searches the tag: one match with the same fingerprint is reused, while zero or several are escalated without repeating creation.
Before you start
What you need ready
The Met solves none of these for you. If one is missing, the automation stops there.
-
A Shopify custom app with catalog and draft-order scopes
Create the app in Shopify admin and connect the store URL and token in Meteor. This flow requires `read_products`, `read_customers`, `read_draft_orders` and `write_draft_orders`; credentials are stored per workspace.
-
Active variants with price, SKU and inventory maintained in Shopify
The shared variant must exist on the product and appear in its detail response. The Met reads those fields from the catalog; it does not fill a missing price or turn total product inventory into availability for one size or color.
-
Checkout, taxes, payment methods and shipping rules configured in Shopify
Test one quote in the store before enabling the flow. The connector returns Shopify's checkout, but it does not inspect whether a gateway is enabled, calculate taxes, or query a carrier's rates and coverage.
-
WhatsApp connected with a Met that has Shopify enabled
Assign the Met to the line receiving the conversation and enable Shopify draft read and create tools. The customer must be able to reply in a new message before the Met performs the write.
The limits
What this automation does NOT solve
Better said here than discovered halfway through the rollout.
-
It does not charge inside WhatsApp or confirm that the customer paid. `invoiceUrl` opens Shopify checkout; if it completes successfully, Shopify handles conversion from draft to order, not this automation.
-
It does not reserve inventory. The tool checks the variant before quoting but does not send `reserveInventoryUntil`; another purchase can take the units and Shopify can block checkout when stock is gone.
-
It does not promise a final total before or after returning the draft. The response amount is the current calculation; applicable taxes, allowed discounts and shipping options are resolved in checkout.
-
It does not create a customer record, send an invoice or email, or mark the draft as paid. It shares the link in the conversation and leaves those actions to Shopify.
-
It does not set a link expiration date. The tool returns no expiry, and status, activity or a store action can make the link stop working, so the Met promises no validity period.
-
`draftOrderCreate` offers no idempotency for this operation. The reference and fingerprint reconcile a sequential attempt, but two concurrent creates can still compete; they are never launched in parallel, and an ambiguous match goes to human review.
FAQ
Questions about this automation
This automation creates a draft or quote and shares checkout so the customer can pay in Shopify. The cash-on-delivery automation creates a real order from the start, with payment pending and no checkout link. They are different writes, not two names for the same one.
It is not presented that way. Before creation they see products, quantities, observed prices and any final shipping charge operations already defined. Shopify calculates the draft on creation, and checkout shows the final amount under the applicable rules.
The draft reserves no units. Shopify can report that inventory is unavailable and block the purchase when the customer opens or completes checkout. The Met does not promise held stock or force the sale of a sold-out variant.
No. It returns the `invoiceUrl` to share verbatim over WhatsApp. It does not call the invoice send mutation, send email, or create a new customer record.
Each intent has a random UUID v4 `referenceTag` that neither contains nor derives personal data, and the handler also stores a payload fingerprint. It searches the reference before writing and again after an ambiguous response. Only one match with the same fingerprint is reused; with none or several it does not repeat and asks for human review.
Keep going
Other automations built on the same tools
Orders and fulfillment
Create a Shopify order over WhatsApp for cash on delivery
How do I take a Shopify order over WhatsApp and leave it marked for cash on delivery?
- Starts:
- when the customer writes
- Steps:
- 5, with 7 real tools
- Needs:
- Shopify
Content and publishing
Publish a Shopify product listing in Webflow with human approval
How do I publish a Shopify product in Webflow without duplicating it or copying data I cannot keep current?
Social
- Starts:
- when someone asks for it
- Steps:
- 6, with 11 real tools
- Needs:
- Shopify · Webflow
Customer service and scheduling
Answer a Shopify order-status question over WhatsApp
How do I answer where a Shopify order is without exposing another customer's order?
Customer service
- Starts:
- when the customer writes
- Steps:
- 6, with 6 real tools
- Needs:
- Shopify · Meteor CRM
Sales and quoting
Qualify a new lead and hand it to the right rep
How do I get every new lead to the right rep already qualified?
Sales
- Starts:
- when the customer writes
- Steps:
- 6, with 14 real tools
- Needs:
- Meteor CRM
Want this automation running on your own data?
We will show it to you with your accounts connected, not with a canned demo.