Organized by the problem the merchant is trying to solve, not by Switchboard feature. Each entry links to the feature that handles it.
If you're trying to figure out whether Switchboard fits your problem, start here. If you already know which feature you need, jump straight to its deep-dive in the docs index.
Switchboard does it: When a customer is logged in and has a saved default address, Switchboard reads the province from that address and pins your pickup location whose own address matches. Zero configuration — it reads each location's address from your Shopify settings.
→ Pickup Reorder — Auto-match mode
Switchboard does it: Create a Fixed-order rule, put your flagship at slot 1, save. Done. Optionally add the other locations in the order you want them shown after it.
→ Pickup Reorder — Fixed-order mode
Switchboard does it: Drop a Liquid snippet into theme.liquid that reads customer.last_order.line_items[].fulfillment.location.name and writes it to a cart attribute. Switchboard reads that attribute at checkout and pins the matching location.
→ Liquid cookbook — Last-order pickup
Switchboard does it: Liquid snippet reads customer.tags, writes a custom array to the cart attribute (e.g. wholesale customers get warehouses in order, retail gets retail-front locations).
→ Liquid cookbook — Tier routing
Switchboard does it: A validation rule with country is not equals CA blocks checkout at the cart, with a custom message ("Sorry, we only ship to Canada — please contact us for special shipping arrangements"). Country comes from a Liquid snippet writing customer.default_address.country_code to a cart attribute.
Switchboard does it: Validation rule: (loyalty_tier equals wholesale) AND (cart_value_cents less_than 50000) → block checkout. Cart value is written by a Liquid snippet on every cart change.
→ Validation — Tiered minimums
Switchboard does it: Add a checkbox to the cart page ("I am 18+ and accept the terms") bound declaratively to a cart attribute with data-switchboard-attr="age_confirmed". Validation rule age_confirmed is not equals true blocks checkout. No JS needed for the input — the SDK auto-syncs the checkbox.
Switchboard does it: Storefront JS detects the conflict on add-to-cart and sets subscription_conflict to true. Validation rule blocks. The customer sees the explanation you wrote in the rule.
→ Validation — Conflict blocking
Switchboard does it: Validation rule blocks at checkout_completion block type so the customer can build their cart and review pricing, but can't actually submit payment. The block message tells them how to proceed (email, call, etc.).
→ Validation — Manual review hold
Switchboard does it: Cart Transform mints a signed token for $2.99 when the customer toggles the protection checkbox. The signed token gets attached to a "Shipping Protection" product's line item. At checkout the function verifies + reprices to $2.99. Customer can't tamper the price client-side; the cryptographic signature prevents that.
→ Cart Transform — Shipping protection pattern
Switchboard does it: Liquid snippet checks customer.tags contains 'vip' and calls the SDK to sign + apply a discounted price to every line item. Safety rails (minPercentOfVariant: 0.7) cap how deep the discount can go.
→ Cart Transform — VIP discount
Switchboard does it: Storefront JS watches the cart, when quantity hits a tier, mints a new signed token at the tier price and applies it to that line. Safety rails prevent prices below your floor.
→ Cart Transform — Volume tiers
Switchboard does it: A "personalized" hidden line item is added when the customer types into the engraving field. Cart Transform signs its price at $10. Multiple engravings = multiple signed line items at $10 each, all with cryptographic guarantees.
→ Cart Transform — Custom upcharge
Switchboard does it: Your backend counts orders and decides whether to issue a signed-price token. If you say yes, the SDK applies the discounted price; if you say no, the token isn't minted and the customer pays full price. Discount codes never enter the picture.
→ Cart Transform — Promotional pricing
Primary fit: dev shops, agencies, and technical merchants who want Shopify Functions but don't want to maintain:
windowSwitchboard ships all of that as a public app. Configure rules in the admin, integrate from your theme when you're ready. The functions degrade to "do nothing" when the storefront hasn't been wired up — so installing today doesn't break anything tomorrow.
Secondary fit: owner-operators who want any of the above use cases out-of-the-box without writing code. Pickup Reorder's Auto-match mode and Fixed-order mode work zero-config. Cart Validation can be entirely admin-driven if the rule is on a Shopify-native cart attribute. Cart Transform requires storefront integration (it's the most powerful and the most code-heavy).
Not a fit (today):
customer Liquid object. If you want richer segmentation, push the attributes from your CRM into the cart attribute via your storefront JS.(Reference — confirm with the merchant before quoting.)
The app uses Shopify Billing with four tiers: Free, Starter ($10/mo), Growth ($25/mo), Unlimited ($50/mo). Limits are per active function across all three categories. The Free tier is enough for a small shop running one or two rules; the Unlimited tier is targeted at agencies running Switchboard across many client stores.
See app/lib/pricing.ts in the repo for the canonical plan definitions.