Changelog

What's new in Hookie

Changes that have reached production, newest first, by the day they shipped.

  1. #413

    Workflow runs from the retired engine cannot be retried

    Workflow runs that started before the move to the current workflow engine finished on the old engine, and that engine is now gone. Such a run can no longer be retried; the console and the API say so, and starting the workflow again runs it on the current engine. Nothing else about how workflows run has changed.

  2. #416

    Agents cannot mint Data API keys or change what the Data API publishes

    An AI agent connected to a workspace can no longer create a Data API key or change which data the Data API publishes. It gets the same refusal an agent already gets for creating API keys, and a person can make either change in the Hookie console. An agent can still list the Data API and revoke a key.

  3. #405

    Deliveries stop at once when the host cannot be reached

    A 508 from your URL means the event has already passed through Hookie eight times, so the delivery is marked dead on its first attempt. A 530 that Cloudflare reports as an origin DNS error means the host name does not resolve, and that is dead at once too. Retrying either would not change the answer.

  4. #405

    Disabling or deleting a destination keeps its queued deliveries

    Disabling a destination pauses its queued deliveries, and they go out when you enable it again. Deleting it cancels them, so they are not sent and are not marked dead.

  5. #405

    An empty dataset filter is refused

    The API refuses a dataset filter that is an empty list, since it would mean nothing rather than everything. A destination already saved that way receives nothing until you change its filter. Leave the filter unset to receive every dataset.

  6. #406

    Empty JSON bodies are refused

    A request with an empty JSON body is refused with 422 after its signature is checked, instead of returning 201 with no record stored.

  7. #406

    Endpoints can dedupe on a body field

    An endpoint can now dedupe on a field in the request body, set with dedupe_path. Idempotency-Key headers and provider delivery ids were already used for this, and nothing changes for an endpoint that does not set it.

  8. #406

    Record sources no longer carry the endpoint slug

    New records and submissions store source as webhook: and the endpoint’s id, not its public slug, so the slug no longer appears in search, exports or the _source column. Records stored before this release keep the value they were given.

  9. #406

    Configuration exports leave out endpoint URLs

    A configuration export writes a destination that points at one of your endpoints as an endpoint reference rather than its URL, so the export holds no live endpoint slug. hookie apply resolves the reference in the project it applies to.

  10. #407

    Workflow conditions can group with any and all

    A workflow condition can now be a group, any or all, nested two levels deep. Simple conditions work as before.

  11. #408

    Connected agents see every tool, and scope is checked on each call

    A connected agent is shown the full tool list. A call above the scope it was granted is refused, and the error names the scope it needs. A wider grant applies from the agent’s next call.

  12. #408

    Search times match exactly

    since and until in search are read as exact moments, and both include the moment they name.

  13. #408

    A delivery lookup returns its record

    Looking up a delivery returns the id of the record it sent, so you can go from a delivery to its record without searching.

  14. #402

    hookie.ai publishes discovery cards for AI agents

    hookie.ai now carries the cards AI agents look for: an A2A agent card, an MCP server card and a skills index. Webhook deliveries from Hookie are signed with Web Bot Auth (RFC 9421, Ed25519), so a receiver can check that a request really came from Hookie.

  15. #400

    hookie.ai reads well to AI agents

    An AI agent that asks for Markdown gets the page as Markdown, and the homepage points agents at the API catalog and the other machine-readable documents. The API catalog lives at /.well-known/api-catalog, and /auth.md names every route to a Hookie credential in one file: self-registration, a connected agent over OAuth, and WorkOS Agent Auth.

  16. #376

    Share table views with your customers in the portal

    A saved table view of a dataset can now be shared in your customer portal. In the view editor, tick Share in the customer portal and choose the field that holds your customer’s id. Customers see a read-only Your data table with the columns you picked, and only the rows that belong to them. A view with no customer field is never shown in the portal.

  17. #361

    Analytics across every project

    A new Analytics page under Get started puts the whole workspace on one page. Pick a project or all of them and a time range of 24 hours, 7 days or 30 days: the charts and cards follow, and four tabs break the same numbers down by project, endpoint, workflow and dataset. Datasets show how much data they hold and their share of everything stored. Deliveries are counted per project, because a delivery is not tied to the endpoint that received the event.

  18. #359

    Install the CLI and the forms package from npm

    @hookieai/cli and @hookieai/forms are published on npm, and the console and docs show the install lines for them.

  19. #349

    A new console layout and a Home with analytics

    The side navigation groups an open project’s pages under Build, Deliver and Observe, and filters as you type: press / or ⌘K. Home now charts events received, deliveries sent and AI runs over the last 24 hours, 7 days or 30 days, each with its change on the period before, and lists what needs you, such as a failing destination or a limit you are close to. Its search box reaches any project, page or setting, and the pages you opened last are one click away. Buttons, tiles and dialogs are slightly rounder.

  20. #342 · #343 · #344

    Protect a public HTML form with an endpoint

    An endpoint can now take a plain HTML form directly. A hidden honeypot field drops bots without costing an event, a Cloudflare Turnstile secret makes every submission pass verification, and declared form fields refuse a submission that is missing one with a 422 naming each field. A form posted with no redirect URL lands on a thank-you page.

  21. #345

    Create and test a form from the CLI

    hookie forms init sets up a contact, newsletter, waitlist, feedback or survey endpoint with its fields, a honeypot, allowed origins and a redirect, and writes a ready HTML, React or Astro form into your project. hookie forms test posts a sample built from the endpoint’s fields.

  22. #352

    The website shows the new console

    Every console picture on hookie.ai is the current console, in your theme, and the features page describes Home and the project Errors tab.

  23. #308

    Invite your team: links, roles and ownership transfer

    Owners and admins invite teammates with a shareable link made for one role — admin, developer or viewer. A link works once and expires after 7 days. Roles can be changed, members removed, ownership transferred, and anyone who belongs to more than one workspace switches between them from the header. The Team plan is on sale.

  24. #287

    Filtered events are kept, and a project Errors tab lists them

    A payload that an endpoint’s own criteria reject, or that could not be routed, is no longer silently dropped: it is kept, flagged, and listed in the project’s new Errors tab.

  25. #304 · #306

    Fixes to the legacy key-and-slug ingest route

    An event sent through the older /v1/webhooks/{key}/{slug} route is filed under the endpoint it was sent to, and an endpoint with a malformed rule answers as a routing failure rather than a server error.

  26. #299

    The marketing site lines up on phones

    The navigation, hero text and buttons sit on the same margins at every phone width.

  27. #210 · #238

    Verify the provider's signature on an endpoint

    An endpoint can check the signature of the provider sending to it — Stripe, GitHub, Shopify, Slack, Standard Webhooks or your own HMAC — before anything is stored, and refuse what fails. The setting travels with project export, import, clone and hookie apply.

  28. #199

    Admin API keys, rate limits, idempotency and versioning

    Automate the admin API with workspace API keys that carry their own role. The admin API and the MCP server are rate-limited, accept idempotency keys for safe retries, and are versioned.

  29. #194

    See every delivery attempt and the whole trace

    A live view in the console, the full trace of an event through rules, workflows and deliveries with its payloads and errors, every failed delivery attempt kept with its response, and per-destination delivery metrics.

  30. #198 · #245

    Customer portal: endpoint management, replay and branding

    Your customers manage their own endpoints from the portal, see why a delivery failed and replay it, and get examples and a verification guide covering both Hookie-Signature and Standard Webhooks. The portal can carry your branding and be embedded in your own app.

  31. #201 · #239 · #250

    Rule editor, project export and import, and `hookie apply` fixes

    Rules are edited in a form with more operators. A whole project can be exported, imported and cloned. hookie apply and hookie diff change a destination’s URL and name in place and read nested YAML correctly.

  32. #212 · #281

    Over-limit resources pause on downgrade and resume on upgrade

    Moving to a smaller plan pauses what no longer fits instead of deleting it, and upgrading resumes it. Your previous plan’s retention window is kept for 7 more days after a downgrade, so you have time to export or upgrade.

  33. #200 · #270

    Console polish and first-run guidance

    Export a whole dataset, see errors inside the dialog that caused them, edit and really delete things, and get guidance on a new workspace’s first steps. You can add a payment method during a trial.

  34. #269 · #280 · #284

    An ingest key's default dataset catches what no rule matches

    Events that match no rule land in the ingest key’s default dataset instead of being dropped. Cron and WebSocket triggers with no dataset store their unmatched events in default.

  35. #206 · #256 · #285 · #286 · #293 · #294 · #295

    Workflows and triggers are more reliable

    Workflows can be deleted for good. A database source never loses a polled row or charges for it twice. The background sweep routes an event whose record was never written, AI-trigger and workflow output is stored atomically, and a failed WebSocket trigger shows its last error.

  36. #248 · #258 · #260

    Clearer limits and warnings

    Home warns at 80% and 100% of the monthly AI trigger runs, the rate limits are stated as they are enforced, and the console stops offering features that are not available yet.

  37. #247 · #257 · #259 · #261 · #277

    Security and correctness fixes

    A workflow run’s context is redacted wherever the API returns it. Single sign-on says it is not available instead of showing a form that cannot work. Number comparisons in conditions accept numbers sent as text. The console always loads its newest version, and the admin API answers 405 for a method a route does not serve.

  38. #160

    Team is $39.00 a seat

    The Team plan is $39.00 a seat each month, with 300,000 events a month.

  39. #279

    Trial checkout keeps your remaining trial days

    Subscribing during a free trial keeps the days you have left before the first charge.

  40. #213

    Security, changelog and real screenshots on hookie.ai

    This site gained a security page, this changelog and real console screenshots. A customer portal can now be removed for good, revoking its links and cancelling its destinations.

  41. #195

    Erase and export your data, or close your workspace

    Delete a single record with every copy Hookie keeps of it, purge a whole dataset, export everything in a workspace as one file, or close the workspace: it is suspended at once and deleted 14 days later.

  42. #202 · #226

    Destination headers, auth and payload shaping; failing destinations flagged

    Add custom headers and authentication to a destination and reshape the payload it sends — enough to post straight to Slack. A destination whose deliveries keep dying is flagged in the console and, after a sustained run of failures, switched off with an optional alert, holding new deliveries until you re-enable it.

  43. #192

    Standard Webhooks signatures

    Every delivery is signed with both Hookie-Signature and the Standard Webhooks headers, and the docs carry verification snippets beyond Node.

  44. #193

    Ingest: request metadata, HTML forms, provider dedup and handshakes

    Each event keeps its request metadata. A plain HTML form can redirect to your thank-you page and a browser fetch() is answered with CORS. Provider retries are de-duplicated, URL-verification handshakes are answered, and rejected requests are logged.

  45. #196

    Database sources, AI triggers in the console, and workflow debugging

    Database sources work, AI triggers are managed in the console, and a workflow instance can be inspected step by step.

  46. #191

    Connected agents can do more, and say what they need

    An agent refused for lack of a scope is told how to widen it, the scope screen shows what each scope allows, and MCP gained tools for sources, triggers, AI agents and portals.

  47. #197

    Billing details, workspace rename and canonical links

    See your billing details from Stripe in the console, and rename a workspace without breaking its old URL slug.

  48. #204

    Clearer limits in the console and on pricing

    Pricing discloses the soft caps and allowances, and the console says when you reach one.

  49. #177 · #211

    Reliability: stuck workflows, delivery latency and large datasets

    Stuck workflow runs are reaped, delivery latency is recorded, sorting a large dataset stays fast, and several smaller ingest-key, Data API and trigger fixes landed.

  50. #178

    A more accessible console

    Headings are in order inside tabs, error states have a heading, Observability’s controls are labelled, and the footer sits outside the main landmark.

  51. #173 · #183

    Suspension stops everything

    A suspended workspace stops ingest, delivery, triggers, sources, running workflows, portal writes, open streams and console changes together. Deliveries are paused rather than lost.

  52. #130 · #131 · #165

    Workflows: a visual builder, runs on the graph, and Cloudflare Workflows

    Workflows are built on a canvas: drag steps in, connect them, and fill each one in a side panel. Pick a run and every step shows whether it completed, is waiting or failed. Workflows run on Cloudflare Workflows, gained HTTP, set and transform steps, and share one condition syntax with rules; cron triggers take a time zone.

  53. #175

    Delivery recovery: bulk replay, secret rotation overlap, per-destination limits

    Replay every failed delivery in a time window at once, from the console, the CLI or an agent. Rotating a destination’s signing secret signs with both the old and the new secret for 24 hours. Each destination can set its own timeout, rate limit and concurrency cap.

  54. #110 · #174

    Ingest keys in the console, endpoint rotation and allowlists

    Ingest keys are managed from the console, with expiry. Endpoints can be edited and their URLs rotated. IP allowlists apply per key, per endpoint and per workspace, and the workspace allowlist can be read and is only changed on purpose.

  55. #159

    Deliveries past the monthly allowance are held, not dropped

    When a workspace uses its monthly delivery allowance, further deliveries are held instead of lost. Once there is room — after the 1st of the month (UTC) or an upgrade — send them from the Deliveries tab, and they go out oldest first.

  56. #162 · #172

    Retention for runs and the audit log; audit export filters

    Workflow runs, AI trigger runs and settled deliveries are pruned when they pass the plan’s retention window. The audit log is kept for at least a year, cannot be altered, and can be filtered before export.

  57. #116 · #163

    One customer portal per project, and a safer one

    Each project has one customer portal, configured in its Settings. A portal delivers only the datasets it exposes, links are exchanged for a short-lived session cookie, tokens are looked up by their full hash, and the portal API is rate-limited.

  58. #115 · #188

    Connect your own coding agent

    The console’s built-in assistant is gone. Connect an agent hands your own MCP client the hosted MCP URL and the steps to authorize it. A connected agent starts read-only, and never reaches billing or platform administration.

  59. #120 · #142 · #154

    Hookie's own sign-in and sign-up pages

    Sign in with an emailed one-time code, GitHub or Google on Hookie-branded pages. Only the social sign-ins an environment has enabled are offered.

  60. #122

    A read-only Data API for each project

    Publish chosen datasets and columns from a project, issue per-project keys, and read the records from your own code.

  61. #123

    Broadcast Logs: send a project's logs and traces over OTLP

    Connect an observability vendor — Datadog, Grafana Cloud, PostHog, Sentry, or your own OpenTelemetry Collector — and a project’s logs and traces are forwarded to it. Event payloads and AI prompts are not sent.

  62. #118

    AI usage is metered per plan and logged

    Every AI call counts against a monthly token allowance for the plan, and each call’s prompt, input and output is kept in the AI call log for the plan’s retention window.

  63. #114 · #119 · #166

    One table everywhere, and a more accessible console

    Every list in the console is the same table, with 25, 50 or 100 rows a page. Record views belong to datasets, and records page on the server. Every page has its own title and moves focus to its heading, and times show in your own time zone.

  64. #164

    Ingest: disabled endpoints answer 503, and 429s carry Retry-After

    A disabled endpoint answers 503 rather than 404, rate-limit refusals say when to retry, and plain text bodies are accepted.

  65. #117

    Trigger limits per project

    A project can have up to 10 cron triggers and 5 WebSocket triggers.

  66. #111 · #112 · #113

    Security fixes: redirects, CSV exports, uploads

    Deliveries never follow a redirect. CSV exports neutralise spreadsheet formulas and carry a UTF-8 byte-order mark. A multipart submission no longer stores uploaded file bytes.

  67. #145

    Fonts are served by Hookie

    Both sites serve IBM Plex themselves instead of loading it from Google Fonts.

  68. #121

    Every subprocessor is listed

    The Privacy Policy lists every company that processes personal data for Hookie, with what it handles and where.

  69. Fixes from a round of QA

    An endpoint’s own criteria and mappings apply on its public URL. A body with no fields is refused rather than acknowledged and dropped. A receiver that refuses a request is not asked again, and a delivery that loops back into Hookie is stopped. A disabled destination pauses its deliveries and a deleted one cancels them. Search is case-insensitive beyond ASCII. Record views can show nested fields. The CLI is installed from the console and manages your account and projects.

  70. Deliveries retry for about a day, and failures say why

    A failed delivery is retried with backoff for about a day before it is given up, and the Deliveries tab shows why each one failed and can filter to them. An acknowledged event is delivered even if the first attempt to hand it on fails. A replay of a replay works.

  71. An endpoint URL writes only to its own dataset

    A public endpoint URL can no longer be pointed at another dataset by adding a path segment. This was a breaking change for anyone relying on it.

  72. Security fixes for streams, allowlists and signatures

    A live stream opened with an ingest key sees only that key’s project. The project IP allowlist is enforced. Inbound signatures expire after five minutes, and rotating a signing secret works.

  73. Cron and WebSocket triggers in the console

    Cron and WebSocket triggers are listed, paused and deleted in the console, and their events are metered like any other ingest.

  74. The hookie CLI

    hookie manages your account and projects from a terminal, with everything the console can do, and the site has a page for it.

  75. Console fixes

    Sign-out, sign-in errors and the sign-up trial are back. A secret shown once no longer blanks the console, project tabs load when opened and can be refreshed, and Home’s quota gauge reads the same counter ingest enforces.

  76. Console navigation

    Every view’s tabs are in the side navigation as submenus.

  77. The new console

    The previous console is retired: the console built on IBM’s Carbon Design System, in dark and light themes, is the only one, with a docked side navigation that shrinks to a rail. The marketing site moved to Carbon’s foundations and has a mobile menu.