Skip to content

docs(webhooks): pricing and per-plan webhook limits - #5051

Merged
jackbridger merged 3 commits into
mainfrom
docs/webhooks-pricing
Oct 26, 2026
Merged

jackbridger merged 3 commits into
mainfrom
docs/webhooks-pricing

Conversation

@jackbridger

Copy link
Copy Markdown
Collaborator

Adds webhooks pricing and per-plan limits to the docs ahead of the webhooks launch on Mon Oct 26 (TRI-14179).

Pricing

Webhooks have no separate charge. The runs a delivery starts or resumes are billed as normal compute (Eric in #project-webhooks, Oct 20). Filtered deliveries start no run, and waiting runs are suspended, so neither uses compute.

Changes

  • docs/limits.mdx: new sections for webhook waiters, processing concurrency, delivery retention and subscribers per endpoint (values from enterprise/apps/billing/app/plans/v3.server.ts and MAX_WEBHOOK_SUBSCRIBERS_PER_ENDPOINT). The existing ingest-rate tables and the #webhook-ingest-rate-limits anchor are unchanged.
  • docs/webhooks/overview.mdx: new "Pricing and limits" section.
  • docs/webhooks/deliveries.mdx: new "Retention" section.
  • docs/webhooks/waiters.mdx: links the plan-dependent limits to the new table.
  • docs/how-to-reduce-your-spend.mdx: new tip, "Filter webhooks before they start runs".
  • trigger-cost-savings skill: one bullet on webhook filters, plus a patch changeset for @trigger.dev/sdk.

mint broken-links passes.

To confirm before merging

  • "No separate charge" holds after the beta too, not only during it.
  • The per-plan webhook limits are live on prod (the webhook-limits-backfill has run).

Webhooks have no separate charge: the runs a delivery starts are billed
as normal compute, and filtered deliveries start no run. Adds the plan
limits for webhook waiters, processing concurrency, delivery retention
and subscribers per endpoint to the limits page, links them from the
webhooks pages, and adds a webhook filter tip to the spend guide and the
bundled cost-savings skill.
@coderabbitai

coderabbitai Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7aa1cdef-d3ad-4617-8208-f71cbbceb330
Commits

Reviewing files that changed from the base of the PR and between 451d78c and d2bad11.

Files selected for processing: 7
  • .changeset/cost-skill-webhook-filters.md
  • docs/how-to-reduce-your-spend.mdx
  • docs/limits.mdx
  • docs/webhooks/deliveries.mdx
  • docs/webhooks/overview.mdx
  • docs/webhooks/waiters.mdx
  • packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md
Files skipped from review as they are similar to previous changes: 5
  • docs/webhooks/deliveries.mdx
  • docs/how-to-reduce-your-spend.mdx
  • docs/webhooks/waiters.mdx
  • docs/webhooks/overview.mdx
  • .changeset/cost-skill-webhook-filters.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

Recent review details
Context from checks skipped due to timeout: 16
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (4, 6)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (3, 6)
  • GitHub Check: e2e-webapp / 🧪 E2E Tests: Webapp (1, 1)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (5, 6)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (1, 6)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (2, 6)
  • GitHub Check: internal / 🧪 Unit Tests: Internal (1)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (6, 6)
  • GitHub Check: packages / 🧪 Unit Tests: Packages (3, 3)
  • GitHub Check: sdk-compat / Node.js 22.23.4 (warp-ubuntu-latest-x64-4x)
  • GitHub Check: internal / 🧪 Unit Tests: Internal (2)
  • GitHub Check: packages / 🧪 Unit Tests: Packages (1, 3)
  • GitHub Check: packages / 🧪 Unit Tests: Packages (2, 3)
  • GitHub Check: code-quality / code-quality
  • GitHub Check: Analyze (javascript-typescript)
  • GitHub Check: Build and publish previews
Additional context used
Code guidelines: 4
packages/trigger-sdk/AGENTS.md — auto-discovered
docs/AGENTS.md — auto-discovered
.claude/rules/sdk-packages.md — auto-discovered
.claude/rules/docs-writing.md — auto-discovered
Path-based instructions: 4
Source excerpt: Always import from `@trigger.dev/sdk`.

CodeRabbit inference engine (packages/trigger-sdk/AGENTS.md)

Files:

  • packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md
Applicability reference: AGENTS.md: # AGENTS.md Docs live in `docs/` as a Mintlify site (MDX format).

CodeRabbit inference engine (docs/AGENTS.md)

Files:

  • docs/limits.mdx
Source excerpt: Changes to `packages/` are **customer-facing**.

CodeRabbit inference engine (.claude/rules/sdk-packages.md)

Files:

  • packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md
Source excerpt: Use Mintlify MDX format.

CodeRabbit inference engine (.claude/rules/docs-writing.md)

Files:

  • docs/limits.mdx
SkillSpector (2.12.0)
packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md

[warning] 43: [RP1] MCP server referenced without pinned version: 'npx trigger.dev'.: npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Remediation: Pin the version: npx @scope/server@1.2.3

(MCP Rug Pull (RP1))

Additional comments: 2
packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md: 1

108-108: LGTM!

docs/limits.mdx: 1

187-190: 🗄️ Data Integrity & Integration

The comment's mechanism is accurate, but the finding does not establish a defect in the reviewed change. The concern depends on whether the webhook-limits-backfill has populated production organizations. That state is not in the repository, and the PR already lists this check as a pre-merge task. The docs change itself has no source-established error.

The resolver does fall back to defaults when an organization has no override. resolveWebhookLimits returns overrides.<field> ?? defaults.<field> for each limit. An organization without stored values therefore gets the environment defaults, not the tier values in the table. The repository does not show whether those defaults match the published tier values, and it does not show whether the backfill ran. A search for webhook-limits-backfill returned no matches in the checkout. The docs therefore cannot be shown to be wrong. The requested action, verifying production state, is an operational check the author already owns, not a change to this diff.

Walkthrough

The changes add webhook pricing and filtering guidance. They document that unmatched deliveries start no run and that webhook receipt has no separate charge. They also describe plan-based limits for waiters, processing concurrency, delivery retention, and subscribers.

Priority: Normal

Merge Risk: Moderate · up to d2bad

Confirm post-beta pricing and that existing organizations have the published plan limits before merging. Without that confirmation, customers could rely on billing or limit information that does not apply to them.

Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main documentation changes for webhook pricing and per-plan limits.
Description check Passed The description explains the pricing, affected documentation, testing performed, and remaining merge checks. It does not follow the template exactly because it omits a Closes issue line, the standard …
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the pricing, affected documentation, testing performed, and remaining merge checks. It does not follow the template exactly because it omits a Closes issue line, the standard checklist, and a Screenshots section, but it is sufficiently complete and directly relevant.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (7 skipped: 7 unsupported.)

Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

devin-ai-integration[bot]

This comment was marked as resolved.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7


ℹ️ Review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 735eb1fe-95d4-45b6-9a5e-bc1f29b5101a
📥 Commits

Reviewing files that changed from the base of the PR and between d9bf563 and 451d78c.

📒 Files selected for processing: 7
  • .changeset/cost-skill-webhook-filters.md
  • docs/how-to-reduce-your-spend.mdx
  • docs/limits.mdx
  • docs/webhooks/deliveries.mdx
  • docs/webhooks/overview.mdx
  • docs/webhooks/waiters.mdx
  • packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.

📜 Review details
⏰ Context from checks skipped due to timeout: 12
  • GitHub Check: sdk-compat / Node.js 20.20 (warp-ubuntu-latest-x64-4x)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (2, 6)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (6, 6)
  • GitHub Check: sdk-compat / Node.js 26.12.1 (warp-ubuntu-latest-x64-4x)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (3, 6)
  • GitHub Check: webapp / 🧪 Unit Tests: Webapp (1, 6)
  • GitHub Check: internal / 🧪 Unit Tests: Internal (1)
  • GitHub Check: packages / 🧪 Unit Tests: Packages (2, 3)
  • GitHub Check: internal / 🧪 Unit Tests: Internal (2)
  • GitHub Check: e2e-webapp / 🧪 E2E Tests: Webapp (1, 1)
  • GitHub Check: packages / 🧪 Unit Tests: Packages (3, 3)
  • GitHub Check: Analyze (javascript-typescript)
🧰 Additional context used
📚 Code guidelines: 4
packages/trigger-sdk/AGENTS.md — auto-discovered
.claude/rules/sdk-packages.md — auto-discovered
.claude/rules/docs-writing.md — auto-discovered
docs/AGENTS.md — auto-discovered
📓 Path-based instructions: 4
Source excerpt: Always import from `@trigger.dev/sdk`.

📄 CodeRabbit inference engine (packages/trigger-sdk/AGENTS.md)

Files:

  • packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md
Source excerpt: Changes to `packages/` are **customer-facing**.

📄 CodeRabbit inference engine (.claude/rules/sdk-packages.md)

Files:

  • packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md
Source excerpt: Use Mintlify MDX format.

📄 CodeRabbit inference engine (.claude/rules/docs-writing.md)

Files:

  • docs/webhooks/deliveries.mdx
  • docs/webhooks/waiters.mdx
  • docs/how-to-reduce-your-spend.mdx
  • docs/limits.mdx
  • docs/webhooks/overview.mdx
Applicability reference: AGENTS.md: # AGENTS.md Docs live in `docs/` as a Mintlify site (MDX format).

📄 CodeRabbit inference engine (docs/AGENTS.md)

Files:

  • docs/webhooks/deliveries.mdx
  • docs/webhooks/waiters.mdx
  • docs/how-to-reduce-your-spend.mdx
  • docs/limits.mdx
  • docs/webhooks/overview.mdx
🪛 SkillSpector (2.12.0)
packages/trigger-sdk/skills/trigger-cost-savings/SKILL.md

[warning] 43: [RP1] MCP server referenced without pinned version: 'npx trigger.dev'.: npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Remediation: Pin the version: npx @scope/server@1.2.3

(MCP Rug Pull (RP1))

🔇 Additional comments: 2
docs/webhooks/overview.mdx: 1

92-92: 🗄️ Data Integrity & Integration

Confirm the webhook-limit rollout before publishing these values.

The page presents the plan limits as active behavior. The implementation resolves limits from organization configuration over environment defaults, but the available source does not show which production organizations have these values or whether webhook-limits-backfill has run. Confirm the deployed configuration and backfill state. Otherwise, label the limits as planned or beta.

docs/limits.mdx: 1

185-190: 🗄️ Data Integrity & Integration

The active Cloud values and webhook-limits-backfill status cannot be determined from the repository. The resolver reads environment defaults and organization overrides, but no deployed Cloud configuration or backfill record is present. The publication concern therefore remains undecidable from the available evidence.

Comment thread .changeset/cost-skill-webhook-filters.md Outdated
Comment thread docs/limits.mdx Outdated
Comment thread docs/limits.mdx
Comment thread docs/limits.mdx Outdated
Comment thread docs/webhooks/deliveries.mdx Outdated
Comment thread docs/webhooks/overview.mdx Outdated
Comment thread docs/webhooks/waiters.mdx
- Filters only skip subscribers: a waiting run still resumes
- Runs are billed an invocation cost plus compute
- Enterprise rows for processing concurrency and delivery retention
- Qualify the 30-day storage claim for strict retention
- Scope the waiter table's live-waiter defaults to self-hosted
- Grammar fixes in limits and the changeset
@changeset-bot

changeset-bot Bot commented Oct 26, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d2bad11

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 30 packages
Name Type
@trigger.dev/sdk Patch
@trigger.dev/linear Patch
@trigger.dev/python Patch
@trigger.dev/slack Patch
@internal/dashboard-agent Patch
@trigger.dev/build Patch
trigger.dev Patch
@trigger.dev/core Patch
@trigger.dev/react-hooks Patch
@trigger.dev/redis-worker Patch
@trigger.dev/rsc Patch
@trigger.dev/schema-to-json Patch
@trigger.dev/billing Patch
@trigger.dev/database Patch
@trigger.dev/otlp-importer Patch
@trigger.dev/rbac Patch
@trigger.dev/sso Patch
@internal/clickhouse Patch
@internal/llm-model-catalog Patch
@internal/metrics-pipeline Patch
@internal/redis Patch
@internal/replication Patch
@internal/run-engine Patch
@internal/run-store Patch
@internal/schedule-engine Patch
@internal/tracing Patch
@internal/webhook-engine Patch
@internal/webhook-sources Patch
@internal/testcontainers Patch
@internal/cache Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Oct 26, 2026

Copy link
Copy Markdown

Open in StackBlitz

@trigger.dev/build

npm i https://pkg.pr.new/@trigger.dev/build@d2bad11

trigger.dev

npm i https://pkg.pr.new/trigger.dev@d2bad11

@trigger.dev/core

npm i https://pkg.pr.new/@trigger.dev/core@d2bad11

@trigger.dev/linear

npm i https://pkg.pr.new/@trigger.dev/linear@d2bad11

@trigger.dev/python

npm i https://pkg.pr.new/@trigger.dev/python@d2bad11

@trigger.dev/react-hooks

npm i https://pkg.pr.new/@trigger.dev/react-hooks@d2bad11

@trigger.dev/redis-worker

npm i https://pkg.pr.new/@trigger.dev/redis-worker@d2bad11

@trigger.dev/rsc

npm i https://pkg.pr.new/@trigger.dev/rsc@d2bad11

@trigger.dev/schema-to-json

npm i https://pkg.pr.new/@trigger.dev/schema-to-json@d2bad11

@trigger.dev/slack

npm i https://pkg.pr.new/@trigger.dev/slack@d2bad11

@trigger.dev/sdk

npm i https://pkg.pr.new/@trigger.dev/sdk@d2bad11

commit: d2bad11

@jackbridger
jackbridger added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit 4ae1b8b Oct 26, 2026
75 checks passed
@jackbridger
jackbridger deleted the docs/webhooks-pricing branch October 26, 2026 17:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants