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:
George Lambert 2026-09-09 02:37:36 -04:00
commit b4150c8250
1364 changed files with 6814366 additions and 0 deletions

View 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 1718 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 **Veraes** 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 115 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 (18 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 Zapiers.
---
## 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 |
Teams **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 plans 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. Customers 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 customers 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 customers 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 customers Zapier account.
---
## 9. Veraes 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 Zapiers 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 Zapiers 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 Zapiers 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 Zapiers 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, Zapiers included work is about **2.7 cents per task**.
If our Create Timestamp is one Zapier task + one Verae stamp, the customers *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**.