|
1
|
--- |
|
2
|
name: monetization |
|
3
|
description: Master router for payments, checkout, subscriptions, paywalls, and monetization. Picks the right provider skill (Shopify, Stripe, Whop, or RevenueCat) before any provider-specific work begins. Read this BEFORE entering the shopify, stripe, whop, or revenuecat skills. |
|
4
|
--- |
|
5
|
|
|
6
|
# Monetization |
|
7
|
Pick the payment provider here, then hand off to skill `shopify`, `stripe`, `whop`, or `revenuecat`. Do not re-litigate the choice inside those skills. |
|
8
|
|
|
9
|
Providers: |
|
10
|
|
|
11
|
- **Shopify** — best for physical goods; handles inventory, shipping, and checkout out of the box. |
|
12
|
- **Stripe** — most flexible; requires external Stripe-dashboard setup to go live. |
|
13
|
- **Whop** — fastest; auto-provisioned store and checkout, no external dashboard. |
|
14
|
- **RevenueCat** — native-mobile in-app purchases only (Expo / React Native / iOS). Not for plain web apps. |
|
15
|
|
|
16
|
## Skip the routing question if any of these is true |
|
17
|
|
|
18
|
The provider is already known — do not ask, just hand off to the matching provider skill. |
|
19
|
- User explicitly named Shopify, Stripe, Whop, or RevenueCat. (Generic words — "payments", "subscriptions", "paywall", "monetize", "let users pay" — do NOT count.) |
|
20
|
- A provider is already integrated: a `SHOPIFY_*` / `STRIPE_*` / `WHOP_*` / `REVENUECAT_*` env var or Replit Configuration is set |
|
21
|
- The OpenInt connection for `shopify-store`, `stripe`, `whop`, or `revenuecat` is already connected. |
|
22
|
- The conversation already established a provider. |
|
23
|
- The user is asking for follow-up CRUD on an existing payment integration. |
|
24
|
- The user's intent is clearly to sell **physical goods** (shipping-required items or inventory-based products) → Hand off to the `shopify` skill. Signals: |
|
25
|
- Explicit mention of physical/tangible items, inventory management, stock, shipping, or fulfillment. |
|
26
|
- A concrete tangible product noun, even when the user never says the word "physical". Treat nouns like pens, shirts, t-shirts, apparel, clothing, mugs, books, ceramics, pottery, jewelry, candles, soap, posters, prints, stickers, accessories, merch, or merchandise as physical-goods signals. "Build an ecommerce site for selling pens with checkout and payments" is a Shopify request — route to `shopify` and recommend the Shopify Store integration + Shopify-hosted checkout, NOT a custom Stripe/Express checkout. |
|
27
|
- **Digital/download exception (takes priority over the tangible-noun shortcut):** if the same item is sold as a digital file, download, print-on-demand digital asset, PDF, template, or other intangible deliverable — e.g. "downloadable poster prints", "printable sticker pack", "ebook" — it is NOT physical goods. A digital/download cue overrides the product noun: do not hand off to `shopify`. Route digital goods to Stripe (or ask the clarification below if it is genuinely unclear whether the item ships physically). |
|
28
|
- Generic words like "store", "shop", "storefront", "products", "checkout", or "ecommerce" with NO tangible product, inventory, shipping, or fulfillment cue are NOT sufficient — they apply equally to digital commerce. Ask the short clarification below instead of guessing. |
|
29
|
|
|
30
|
## Otherwise, ask which provider to use |
|
31
|
|
|
32
|
Pause any plan/task-list work and call `user_query` (the `queries` wrapper and `type: "choice_query"` are required): |
|
33
|
|
|
34
|
```js |
|
35
|
user_query({ |
|
36
|
queries: [ |
|
37
|
{ |
|
38
|
type: "choice_query", |
|
39
|
question: "What payment provider do you want to use?", |
|
40
|
options: [ |
|
41
|
"Shopify (best for physical goods)", |
|
42
|
"Stripe (most flexible)", |
|
43
|
"Whop (fastest, no external setup)" |
|
44
|
] |
|
45
|
} |
|
46
|
] |
|
47
|
}) |
|
48
|
``` |
|
49
|
|
|
50
|
Add `"RevenueCat (best for iOS in-app payments, requires an account)"` as an additional option **only** if the app is native-mobile / Expo / React Native, or the user asked about IAP on iOS. Never offer RevenueCat for plain web apps. |
|
51
|
|
|
52
|
Hand off to the picked provider's skill. |