Application/quote intent type for quote & negotiation apps (open, send, counter, convert) #5
jahangir-efoli
started this conversation in
RFC
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Add an
application/quoteaction-intent type so quote/negotiation apps can register Sidekick actions on a quote. The immediate, highest-value action isopen(navigate the merchant to a specific quote); the type would also support staged, merchant-confirmedsend_proposal/counter/convert/create.Motivation
We build QuotWay — B2B Quote & Negotiation (public App Store app). Our Sidekick data extension already works well: merchants ask, "Which quotes are pending approval?" or "show my highest-value quote" and Sidekick answers from our app.
The gap is the moment the merchant follows up with "open it":
A data extension has no matching action intent, and there's no quote/negotiation type in the vocabulary (
application/{ad, campaign, email, faq,loyalty-program, return, review, shipment, ticket}. '). +shopify/{customer, order, product}), so we can't declare anadmin.app.intent.linkfor it —shopify app deployrejects unknown intent types. We already return the correct deep link in the resource-link_meta`, but Sidekick has no route to use it.B2B quoting/negotiation is a growing surface (Companies + payment terms now reach. Basic→Advanced, not just Plus), and "open / send / counter / convert this quote" is exactly the in-flow action Sidekick is built for.
Proposed type
application/quote— actions:open|create|edit|send_proposal|counter|convert.{ "type": "application/quote", "value": { // the quote to act on (open/edit/send/counter/convert) "type": "string", "description": "GID or reference of the quote (e.g. gid://application/quote/123 or QW-1042).", "mapTo": "param", "fieldName": "id" }, "inputSchema": { // all optional (no required fields, per the intent rules) "buyer_email": { "type": "string", "format": "email" }, "company": { "type": "string", "description": "Company name or GID (B2B)" }, "total": { "type": "string", "description": "Proposed total in shop currency" }, "message": { "type": "string", "description": "Note to the buyer" } } }Apps wire this to their own confirm UI (we'd use our contextual save bar + convert preview), so nothing commits without the merchant — the same stay-in-control model the existing action intents use.
Alternatives considered
admin.app.intent.linkto open ANY of its own resources by URL, with no predefined schema. This would solveopenfor every app (not just quotes) and is arguably the smaller change. Happy to take this instead of/alongsideapplication/quote.application/ticket— semantically wrong for a quote and would misrepresent the resource (also a content-policy concern), so we ruled it out.Minimum viable
If the full type is too broad to start, just
open(or the generic navigation intent) already closes the most common merchant request and unblocks every quote app.Willing to contribute
Happy to open the follow-up PR adding the
types/file, iterate on the schema, and be an early tester/design partner. App: QuotWay — B2B Quote & Negotiation (apps.shopify.com/quotway-b2b-quote-negotiation).Beta Was this translation helpful? Give feedback.
All reactions