Milestone 0: import zappier billing, Verae middleware, and Zapier research
Compose-ready workspace: packages/zappier (rate card, portal, Stripe), packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier (CLI app), vendor/zapier-platform, and research/zapier vendor corpus. Gate 0 structure checks pass. Product code and research are not yet wired.
This commit is contained in:
commit
b4150c8250
1364 changed files with 6814366 additions and 0 deletions
291
research/zapier/docs/zapier-billing.md
Normal file
291
research/zapier/docs/zapier-billing.md
Normal file
|
|
@ -0,0 +1,291 @@
|
|||
# Zapier cost structure and billing models
|
||||
|
||||
**Planning brief for Verae Time**
|
||||
Source: official Zapier pricing at [zapier.com/pricing](https://zapier.com/pricing), captured 17–18 August 2026 (USD).
|
||||
Confirm live rates before a customer quote. The rate card at `/pricing/rates` was not fetchable at write time; multipliers below are those Zapier publishes on the main pricing page and “What is a task?” article (updated June 2026).
|
||||
|
||||
This document explains **how Zapier charges**, with examples, so we can design **Verae’s** meter without colliding with or accidentally subsidizing Zapier.
|
||||
|
||||
---
|
||||
|
||||
## 1. The one idea that unlocks the rest
|
||||
|
||||
Zapier does **not** charge per Zap, per app, or per seat on Professional. It charges for **successful work**.
|
||||
|
||||
You buy two things that travel together:
|
||||
|
||||
1. A **plan level** — the feature set (Free / Professional / Team / Enterprise).
|
||||
2. A **task tier** — a monthly (or Enterprise annual) allowance of **tasks**.
|
||||
|
||||
Then three other economies sit **beside** that, not inside it:
|
||||
|
||||
| Economy | Unit | Used for |
|
||||
|---------|------|----------|
|
||||
| **Core Zapier** | Task | Zaps, AI-by-Zapier, Code-by-Zapier, MCP, SDK |
|
||||
| **Agents add-on** | Activity | Zapier Agents (does not draw tasks) |
|
||||
| **Chatbots add-on** | Feature tier (number of bots) | Zapier Chatbots (not task-metered) |
|
||||
| **Verae (us)** | Timestamp / verify / batch | Middleware `PLAN_LIMITS` — a **second invoice** |
|
||||
|
||||
Verae never appears on the Zapier invoice unless we sign a **White Label / Powered by Zapier** contract and resell Zapier usage ourselves.
|
||||
|
||||
---
|
||||
|
||||
## 2. What a task is (and is not)
|
||||
|
||||
A **task** is counted when Zapier **successfully completes** a unit of work. Failures are free.
|
||||
|
||||
### Counts
|
||||
|
||||
- A successful **action in another product**: Create Timestamp, post Slack, add a Drive file, write a Sheet row, call a webhook.
|
||||
- A successful **Zapier MCP** tool execute (read or write).
|
||||
- **AI by Zapier** and **Code by Zapier** (with multipliers / extra runtime — §4).
|
||||
|
||||
### Does not count
|
||||
|
||||
- The **trigger** (including polling every 1–15 minutes).
|
||||
- **Logic and prep**: Filter, Paths, Formatter, Delay, Looping, Sub-Zap, Digest, Zapier Manager, Storage.
|
||||
- **Zapier Tables** and **Zapier Forms** triggers and actions.
|
||||
- Building, turning on, or testing a Zap until a step actually succeeds in production.
|
||||
|
||||
Shared pool: one allowance for the whole account. There is no separate MCP budget.
|
||||
|
||||
---
|
||||
|
||||
## 3. Plan levels (what you can build)
|
||||
|
||||
Plans are cumulative. Task **volume** is chosen separately (§5).
|
||||
|
||||
| | Free | Professional | Team | Enterprise |
|
||||
|--|------|--------------|------|------------|
|
||||
| Seats | 1 | 1 | 25 | Unlimited |
|
||||
| Zap shape | Two-step only (trigger + 1 action) | Multi-step | Multi-step | Multi-step |
|
||||
| Polling interval | 15 min | 2 min | 1 min | 1 min |
|
||||
| Premium apps, webhooks | No | Yes | Yes | Yes |
|
||||
| Filters, Paths, Formatter, AI by Zapier | No | Yes | Yes | Yes |
|
||||
| Shared Zaps / connections, SAML SSO | No | No | Yes | Yes |
|
||||
| SCIM, app controls, custom retention, TAM, BYOM | No | No | No | Yes |
|
||||
| Task cycle | Monthly | Monthly | Monthly | **Annual** task limit |
|
||||
| Pay-per-task overflow | No | Optional | Optional | Custom |
|
||||
| Entry price (annual, USD/mo) | $0 (100 tasks) | **$19.99** (750 tasks) | **$69** (2,000 tasks) | Sales |
|
||||
|
||||
Also: 14-day Professional trial (no card). Non-profit: extra 15% off the subscription, **not** on pay-per-task. Live chat on Professional only at the **2,000+** task tier.
|
||||
|
||||
**Implication for Verae:** a Free customer can run **only** “new file → Create Timestamp” (two steps). Anything with a catalog write, Slack notify, or Wait **plus** another action needs Professional.
|
||||
|
||||
---
|
||||
|
||||
## 4. Variable pricing inside the task pool
|
||||
|
||||
Not every successful step costs one task. Zapier uses **multipliers** so expensive compute costs more of the same allowance.
|
||||
|
||||
| Work | Tasks per success | Notes |
|
||||
|------|------------------:|-------|
|
||||
| Typical third-party action (Verae Create Timestamp, Slack, Drive, Sheets, webhook) | **1** | The default. Design around this. |
|
||||
| Standard AI by Zapier (default model) | **1** | Same as a normal action |
|
||||
| Advanced AI by Zapier | **3** | Confirm on `/pricing/rates` |
|
||||
| Premium AI by Zapier | **5** | Confirm on `/pricing/rates` |
|
||||
| Zapier MCP `execute` (read or write) | **2** | Discover / inspect / enable are free meta-tools |
|
||||
| Code by Zapier | 0 during **included** runtime; then **1 per extra 30 s** | Included: Free 1 s, Pro/Team 30 s, Enterprise 2 min. Extended runtime is opt-in on paid plans (1–8 min cap). |
|
||||
| Zapier SDK | Free **while in beta** | Zapier will announce when beta pricing starts; assume it will join the task pool |
|
||||
|
||||
**Failed steps = 0 Zapier tasks.** They can still hit Verae (Autoreplay / customer retries). That is our problem, not Zapier’s.
|
||||
|
||||
---
|
||||
|
||||
## 5. Task tiers and list price (USD, August 2026)
|
||||
|
||||
Self-serve is sold as **plan × tier**. Annual is ~33% off monthly. Figures are **per month**.
|
||||
|
||||
### Professional
|
||||
|
||||
| Tasks / mo | Annual / mo | Monthly / mo | Implied $/task (annual) |
|
||||
|-----------:|------------:|-------------:|------------------------:|
|
||||
| 750 | $19.99 | $29.99 | $0.027 |
|
||||
| 1,500 | $39.00 | $58.50 | $0.026 |
|
||||
| 2,000 | $49.00 | $73.50 | $0.025 |
|
||||
| 5,000 | $89.00 | $133.50 | $0.018 |
|
||||
| 10,000 | $129.00 | $193.50 | $0.013 |
|
||||
| 20,000 | $189.00 | $283.50 | $0.0095 |
|
||||
| 50,000 | $289.00 | $433.50 | $0.0058 |
|
||||
| 100,000 | $489.00 | $733.50 | $0.0049 |
|
||||
| 200,000 | $769.00 | $1,149.00 | $0.0038 |
|
||||
| 500,000 | $1,499.00 | $2,199.00 | $0.0030 |
|
||||
| 1,000,000 | $2,199.00 | $3,299.00 | $0.0022 |
|
||||
| 2,000,000 | $3,389.00 | $5,099.00 | $0.0017 |
|
||||
|
||||
### Team (starts at 2,000)
|
||||
|
||||
| Tasks / mo | Annual / mo | Monthly / mo | Implied $/task (annual) |
|
||||
|-----------:|------------:|-------------:|------------------------:|
|
||||
| 2,000 | $69.00 | $103.50 | $0.035 |
|
||||
| 5,000 | $119.00 | $178.50 | $0.024 |
|
||||
| 10,000 | $169.00 | $253.50 | $0.017 |
|
||||
| 20,000 | $249.00 | $373.50 | $0.012 |
|
||||
| 50,000 | $399.00 | $598.50 | $0.008 |
|
||||
| 100,000 | $599.00 | $898.50 | $0.006 |
|
||||
| 1,000,000 | $2,499.00 | $3,749.00 | $0.0025 |
|
||||
| 2,000,000 | $3,999.00 | $5,999.00 | $0.0020 |
|
||||
|
||||
Team’s **entry** $/task is higher than Pro because you are buying seats, shared connections, and SSO — not cheaper tasks.
|
||||
|
||||
Tiers also exist at 300k / 400k / 750k / 1.25M / 1.5M / 1.75M (see getting-started §9 or zapier.com/pricing). Above 2M: Sales.
|
||||
|
||||
---
|
||||
|
||||
## 6. Overflow (pay-per-task)
|
||||
|
||||
On paid plans, a toggle decides what happens at the allowance:
|
||||
|
||||
| Setting | What happens |
|
||||
|---------|----------------|
|
||||
| **On** | Zaps and MCP keep running. Extra tasks bill at **1.25×** the plan’s base $/task (annual) or **2.5×** (monthly). Hard ceiling: **3×** subscribed tasks, then pause until next cycle or upgrade. |
|
||||
| **Off** | Everything **stops** at the allowance. |
|
||||
| **Free** | No overflow. Hits 100 and stops. |
|
||||
|
||||
Worked overage: Professional 750 annual → base ≈ $19.99 / 750 = **$0.0267**. Overflow ≈ **$0.0333**/task. Monthly base ≈ $0.0400; overflow ≈ **$0.100**/task. Same usage is ~3× more expensive on monthly overflow than annual overflow.
|
||||
|
||||
Enterprise uses an **annual** pool so seasonal spikes do not reset every month.
|
||||
|
||||
---
|
||||
|
||||
## 7. Other Zapier products (different models)
|
||||
|
||||
| Product | Model | Relation to tasks |
|
||||
|---------|--------|-------------------|
|
||||
| **Zap workflows** | Task | Core |
|
||||
| **Zapier MCP** | Same task pool; **2 tasks** per successful execute | Meta-tools free |
|
||||
| **Zapier SDK** | Beta free; expect tasks later | Consume, not publish |
|
||||
| **AI by Zapier** | Task × model tier (1 / 3 / 5) | Inside the Zap |
|
||||
| **Code by Zapier** | Included seconds + 1 task / 30 s extra | Inside the Zap |
|
||||
| **Tables / Forms** | Plan limits (records, pages, upload size); **0 tasks** when used in Zaps | Separate caps |
|
||||
| **Agents** | **Activities** (Free 400/mo; paid ~$33.33/mo annual for 1,500). Per-run cap 10 (Free) / 40 (paid). | Does **not** use tasks |
|
||||
| **Chatbots** | Bot-count tiers (Free 2; paid ≈5 / ≈20) | Does **not** use tasks |
|
||||
| **Canvas / Copilot** | Included; Free Copilot has a daily message limit | Not a usage meter |
|
||||
| **Directory integration (us)** | **$0** to publish. Customer’s Zapier plan pays tasks. | Partner is not billed |
|
||||
| **White Label / Powered by Zapier / embed** | Usage-based **to the product company**. End users may not need their own Zapier bill. | Sales contract |
|
||||
| **NLA / AI Actions** | Retired | Do not design around this |
|
||||
|
||||
---
|
||||
|
||||
## 8. Worked examples (so the variables are visible)
|
||||
|
||||
Assume **Professional, billed annually**, and that every named action succeeds. Verae units are **our** meter.
|
||||
|
||||
### Example A — Two-step timestamp (Free-capable)
|
||||
|
||||
`New file in Drive` → `Verae: Create Timestamp`
|
||||
|
||||
| Volume | Zapier tasks | Fits | Zapier $ (annual) | Verae units |
|
||||
|-------:|-------------:|------|-------------------|------------:|
|
||||
| 80 files / mo | 80 | Free | $0 | 80 timestamps |
|
||||
| 200 | 200 | Pro 750 | $19.99 | 200 |
|
||||
| 600 | 600 | Pro 750 | $19.99 | 600 → **starter** (500) overflows **us** |
|
||||
|
||||
Lesson: the customer can still be on Zapier Free while **we** 402 them. The two meters trip at different points.
|
||||
|
||||
### Example B — Production pattern we recommend
|
||||
|
||||
`New file` → Filter → `Create Timestamp` → Formatter → write catalog row (Tables = **0** tasks) → Slack
|
||||
|
||||
If Slack is the only other third-party action: **2 tasks / file** (timestamp + Slack). Tables write is free.
|
||||
|
||||
| Files / mo | Passing filter | Zapier tasks | Cheapest Pro tier | Zapier $ | Verae timestamps |
|
||||
|-----------:|---------------:|-------------:|-------------------|----------:|-----------------:|
|
||||
| 1,000 | 20% (200) | 400 | 750 | $19.99 | 200 |
|
||||
| 1,000 | 100% | 2,000 | 2,000 | $49 | 1,000 → **pro** on our side |
|
||||
| 10,000 | 100% | 20,000 | 20,000 | $189 | 10,000 → enterprise / contract |
|
||||
|
||||
Filter early: 800 of 1,000 files dropped = **0 Zapier tasks and 0 Verae stamps** for those 800.
|
||||
|
||||
### Example C — Create and Wait vs hook
|
||||
|
||||
- **Wait in the Zap:** 1 task (the wait action). Fine for interactive “give me the certificate now.”
|
||||
- **Async + Timestamp Completed hook + update row:** 1 task to create + 1 task when the hook fires an action = 2 tasks, but the Zap does not sit open. Prefer this at volume.
|
||||
|
||||
Polling `Find Job Status` every minute in a loop is the anti-pattern: each successful search is a task.
|
||||
|
||||
### Example D — Same work via Zapier MCP (an agent)
|
||||
|
||||
Agent calls: execute Create Timestamp, execute write Sheet, execute Slack.
|
||||
|
||||
3 executes × **2 tasks** = **6 tasks / file**, plus any Agent **activities** if they used Zapier Agents.
|
||||
|
||||
200 files = **1,200 Zapier tasks** → Pro 1,500 at **$39**/mo — three times the Zapier cost of Example B for the same Verae stamps (200).
|
||||
|
||||
**Planning rule:** MCP-shaped clients burn Zapier 2× per hop. Do not price Verae as if the customer’s only cost is our stamp.
|
||||
|
||||
### Example E — AI enrichment in the Zap
|
||||
|
||||
`New file` → Standard AI extract metadata (1) → Create Timestamp (1) → Sheet (1) = **3 tasks**.
|
||||
Swap in Premium AI: **5 + 1 + 1 = 7 tasks**.
|
||||
1,000 files: 3,000 vs 7,000 tasks → $89 vs $129 on Pro annual.
|
||||
|
||||
AI model choice is the customer’s Zapier bill, not ours — unless we bury AI inside **our** action (we should not).
|
||||
|
||||
### Example F — Overflow month
|
||||
|
||||
Customer on Pro 750 annual ($19.99). A campaign pushes 1,400 successful timestamp actions (and nothing else).
|
||||
|
||||
- Included: 750
|
||||
- Overflow: 650 × ~$0.0333 ≈ **$22**
|
||||
- Total Zapier ≈ **$42** that month
|
||||
- Still under the 3× ceiling (2,250)
|
||||
|
||||
If they were on **monthly** Pro 750 ($29.99): overflow 650 × ~$0.100 ≈ **$65** + $30 = **~$95**.
|
||||
|
||||
### Example G — White Label (we are the billed party)
|
||||
|
||||
If Verae embeds Zapier and Zapier bills **us** per task, then 10,000 customer files × 2 tasks = 20,000 tasks ≈ **$189**/mo (Pro annual list) **plus** our timestamp COGS. That number has to sit in **our** COGS, not the customer’s Zapier account.
|
||||
|
||||
---
|
||||
|
||||
## 9. Verae’s meter today (so we can place it)
|
||||
|
||||
From `verae-zapier-middleware` `PLAN_LIMITS`:
|
||||
|
||||
| Verae plan | Timestamps / mo | Verifications | Batch | RPM |
|
||||
|------------|----------------:|--------------:|-------|----:|
|
||||
| free | 50 | 50 | no | 30 |
|
||||
| starter | 500 | 500 | yes, max 10 | 120 |
|
||||
| pro | 5,000 | 5,000 | yes, max 100 | 600 |
|
||||
| enterprise | unlimited / contract | contract | yes | 3,000 |
|
||||
|
||||
Over-quota → **402** `QUOTA_EXCEEDED`. Batch on free → **403** `PLAN_UPGRADE_REQUIRED`.
|
||||
|
||||
These fire **independently** of Zapier’s pause / pay-per-task.
|
||||
|
||||
---
|
||||
|
||||
## 10. How this should shape *our* billing
|
||||
|
||||
1. **Never bundle “unlimited Zapier.”** We do not control their task tier, MCP multiplier, or overflow toggle.
|
||||
2. **Meter what we uniquely do:** accepted timestamp jobs, verifies, maybe stored GB / pin-days / Glacier restores — not Zap steps.
|
||||
3. **Mirror Zapier’s shape if we want familiarity:** plan + included units + optional overage with a ceiling. Customers already understand 402 vs pause.
|
||||
4. **Do not use Zapier-like 2× MCP pricing on our API.** MCP is Zapier’s tax on agent hops. Our HTTP `/zapier/v1/timestamp` should stay **one Verae unit** whether the Zap used 1 task or an agent used 2.
|
||||
5. **Price batch as a plan gate**, not as “N Zapier tasks.” Zapier will still charge **1 task** for the batch action; we decide whether 100 items cost 1 or 100 of *our* units. Today we count batch size against `batchMaxItems` and timestamp quota.
|
||||
6. **Hook-friendly packaging:** include enough monthly stamps that the recommended “create + hook + catalog” pattern is cheaper on **our** side than polling.
|
||||
7. **Three customer motions, three packages:**
|
||||
- **Directory user** — they pay Zapier + they pay Verae (API key). Our list price must look fair next to ~$0.02–$0.03 per Zapier task at Pro entry.
|
||||
- **MCP / agent user** — they already pay 2 Zapier tasks per hop; keep Verae simple or they will skip us.
|
||||
- **Embed / White Label** — we may owe Zapier usage; our price to the end user must cover that COGS or we only sell the timestamp and let them bring their own Zapier.
|
||||
8. **Storage / Peergos / Glacier is a third meter** (see getting-started §10). Do not hide pin-days or restore fees inside “one timestamp.”
|
||||
9. **Failed Zapier steps are free for them, not for us** if we already accepted the job. Bill on **accepted jobId** (202), not on Zapier’s success callback.
|
||||
10. **Quote two lines** in every proposal: “Your Zapier plan (estimate N tasks)” and “Verae (M timestamps).” Never a single blended number.
|
||||
|
||||
### Rough juxtaposition (order-of-magnitude)
|
||||
|
||||
At Pro 750 annual, Zapier’s included work is about **2.7 cents per task**.
|
||||
If our Create Timestamp is one Zapier task + one Verae stamp, the customer’s *Zapier* share of a two-step Zap is ~$0.027. Our stamp should be priced from **our** chain/ops cost, not matched 1:1 to that 2.7¢ — but if we charge **dollars** per stamp while Zapier is **cents** per step, SMB Zaps will feel “Verae-expensive” even when Zapier is the bigger invoice at volume.
|
||||
|
||||
---
|
||||
|
||||
## 11. Planning checklist
|
||||
|
||||
- [ ] For each target Zap, count **billable Zapier actions** (not steps on the canvas).
|
||||
- [ ] Multiply MCP executes by **2**.
|
||||
- [ ] Apply AI 1 / 3 / 5 if they enrich in the Zap.
|
||||
- [ ] Pick the cheapest **Zapier** tier that covers that task count (or overflow math).
|
||||
- [ ] Count **Verae** timestamps / verifies / batch separately; check 50 / 500 / 5,000 tripwires.
|
||||
- [ ] If we embed Zapier, put Zapier list price into **our** COGS.
|
||||
- [ ] Keep Peergos pin / Glacier restore off the timestamp SKU.
|
||||
- [ ] Re-check [zapier.com/pricing](https://zapier.com/pricing) before any contract; this brief is dated **18 August 2026**.
|
||||
Loading…
Add table
Add a link
Reference in a new issue