delivered for clients · names withheldupgrade Identity and access

Auth0 Rules and Hooks to Actions before end of life

Cohash moves Auth0 Rules and Hooks to Actions before Auth0 retires them on 18 November 2026. We export each rule and hook and map it to the Actions trigger it belongs on. Actions have no global object and no built-in Management API token, so we replace those with Action secrets and a machine-to-machine client. Redirects get rebuilt. Then we compare ID and access token claims before and after, so your applications see no change.

  1. 01Export and read every rule and hook
  2. 02Map to triggers
  3. 03Replace what Actions don't provide
  4. 04Rebuild redirects and claims
  5. 05Test and switch in one deploy
case-study / auth0-rules-to-actions delivered
beforeAuth0 Rules and Hooks afterAuth0 Actions
01 · SOURCE CONTROL 02 · AUTH0 TENANT 03 · DOWNSTREAM Actions code repo: Deploy CLI config Actions code repo Deploy CLI config Post-login Actions: api.redirect · claims Post-login Actions api.redirect · claims Credentials-exchange Action: M2M token scopes Credentials-exchangeAction M2M token scopes Action secrets: M2M client credentials Action secrets M2M client credentials Management API: dedicated M2M client Management API dedicated M2M client Consent and profile pages: onContinuePostLogin Consent and profilepages onContinuePostLogin ID and access tokens: claims match old tokens ID and access tokens claims match oldtokens
case file

The story

Told without the client's name or anything that could identify them.

what happened

A software company's customer identity team had an Auth0 tenant that predated Actions, still full of Rules and Hooks, with the 18 November 2026 end-of-life date close. Several rules used the global object, called the Management API with the built-in token, or redirected users with context.redirect, and nobody was sure which rules still mattered. We exported every rule and hook with the Deploy CLI into source control and marked each one keep, merge or delete. The survivors were rewritten as Actions on the right triggers, with a machine-to-machine client and Action secrets for Management API calls. Each cut-over disabled the rule and bound the Action in the same deploy, and ID and access token claims matched the captured tokens from the old rules.

why it was urgent

Auth0's documentation sets 18 November 2026 as the end-of-life date for Rules and Hooks, which have not been available to tenants created since 16 October 2023. Auth0 also says new Rules or Hooks should only be created in development tenants to test a migration. Any tenant still running them has weeks, not months.

problem statement
  • openThe tenant still shows active Rules or Hooks in the dashboard.
  • recurringRules use the global object or call the Management API with the built-in token.
  • blockedA rule redirects users to a consent, profile or MFA page with context.redirect.
  • openNobody really knows which rules still matter. The tenant has been running since before Actions existed.
architecture

The estate, before and after

before
before

Before: Rules and Hooks ran every login

Rules ran in sequence on each login, passed state through shared objects and called the Management API with the built-in token. Hooks handled client credentials and registration events, and both stop running on 18 November 2026.

Before: Rules and Hooks ran every login Rules ran in sequence on each login, passed state through shared objects and called the Management API with the built-in token. Hooks handled client credentials and registration events, and both stop running on 18 November 2026. 01 · APPLICATIONS 02 · AUTH0 TENANT 03 · DOWNSTREAM login token request every login redirect add claims add scopes Customer apps web · mobile · SPA API clients client credentials Rules pipeline global object ·chained state Hooks credentials · registration Management API built-in rule token Consent and profile pages context.redirect ID and access tokens custom claims
Read the diagram as text
  1. Customer apps → Rules pipeline: login
  2. API clients → Hooks: token request
  3. Rules pipeline → Management API: every login
  4. Rules pipeline → Consent and profile pages: redirect
  5. Rules pipeline → ID and access tokens: add claims
  6. Hooks → ID and access tokens: add scopes
after
after

After: Actions bound to the right triggers

Rules and Hooks are gone. Post-login and credentials-exchange Actions do their job, deployed from source control with the Deploy CLI. A dedicated machine-to-machine client makes the Management API calls, and its secret sits in Action secrets.

After: Actions bound to the right triggers Rules and Hooks are gone. Post-login and credentials-exchange Actions do their job, deployed from source control with the Deploy CLI. A dedicated machine-to-machine client makes the Management API calls, and its secret sits in Action secrets. 01 · SOURCE CONTROL 02 · AUTH0 TENANT 03 · DOWNSTREAM deploy deploy secret scoped calls api.redirect set claims set scopes Actions code repo Deploy CLI config Post-login Actions api.redirect · claims Credentials-exchangeAction M2M token scopes Action secrets M2M client credentials Management API dedicated M2M client Consent and profile pages onContinuePostLogin ID and access tokens claims match old tokens
Read the diagram as text
  1. Actions code repo → Post-login Actions: deploy
  2. Actions code repo → Credentials-exchange Action: deploy
  3. Action secrets → Post-login Actions: secret
  4. Post-login Actions → Management API: scoped calls
  5. Post-login Actions → Consent and profile pages: api.redirect
  6. Post-login Actions → ID and access tokens: set claims
  7. Credentials-exchange Action → ID and access tokens: set scopes
results

What the client got

What changed for the client once the work was done. Described, not scored: we don't publish client figures.

  1. result 01

    Logins run on Actions before the deadline

    We turned Rules into post-login Actions and moved Hooks to their matching triggers. So when Rules and Hooks hit end of life, nothing stops adding claims or blocking logins.

  2. result 02

    Applications see the same tokens

    ID and access token claims were checked per application against tokens we captured from the old rules. Nothing downstream had to change.

  3. result 03

    Management API calls use a scoped client

    The built-in token is gone. A machine-to-machine application with its credentials in Action secrets does that job now, and per-login calls were cut back to stay under the rate limits.

  4. result 04

    Tenant logic lives in source control

    Actions code and Deploy CLI configuration are in version control now. Dead rules from earlier years were deleted, not carried forward.

  5. result 05

    Redirect flows were tested in a browser

    We rebuilt consent and profile completion redirects with api.redirect and onContinuePostLogin and tested each one through the continue step.

what can go wrong

Risks we plan for

  1. Shared state between rules

    A lot of rules hand data to the next rule through the user or context objects. That doesn't carry over. Auth0 says data changed on the event object isn't visible to other Actions, so chained logic gets redesigned.

  2. Management API rate limits

    A rule that called the Management API on every login can start hitting rate limits once each Action fetches its own token. We cut those calls, or move the data to app metadata, before go-live.

  3. Redirect flows that half work

    Auth0's own guide says getting every redirect right in Actions is beyond its scope. So consent and profile completion flows get full browser tests, continue step included.

  4. The deadline

    Rules stop running after 18 November 2026. Whatever hasn't been migrated stops adding claims or blocking logins that day. It can fail open, or fail closed.

ai in this move

Where AI helps, and where it needs guardrails

Auth0 for AI Agents, generally available since 19 November 2025, adds Token Vault and asynchronous authorization, and Auth for MCP went GA on 21 May 2026. Actions are where agent-specific claims and checks will live, so the rewrite should leave room for them. Coding assistants can translate rule JavaScript to Actions syntax quickly, but each translation is judged by comparing real token claims, not by reading the code.

forward deployed engineers →
you keep

What you're left with

We write these for your setup, and they're working documents. Your team should be able to keep things running from them long after we've gone.

  • inventory01

    Exported inventory of Rules and Hooks with a keep, merge or delete decision

    yours to keep
  • code02

    Actions code in source control with Deploy CLI configuration

    yours to keep
  • design03

    Machine-to-machine client and secrets design for Management API calls

    yours to keep
  • document04

    Before-and-after token claim comparison per application

    yours to keep
  • runbook05

    Cut-over and rollback runbook

    yours to keep
talent and delivery · auth0 actions

Certified engineers, wherever you need them.

Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.

Onsite

Engineers at your sites in the US

Nearshore

Overlapping hours with US teams

Offshore

Overnight progress on your backlog

All time zones

Coverage handed over across time zones

24-hour coverage · US Central time
OnsiteUS business hours
Nearshoreoverlapping US hours
Offshoreovernight progress
Combinedhandover, not hand-off
01What happens if we miss 18 November 2026?

That's the end-of-life date Auth0 set for Rules and Hooks. Logic still in them stops running, and the claims, blocks and redirects they handled go with it. Plan to be done with time to spare.

02Can Rules and Actions run side by side?

Yes, during the migration. We move one rule at a time, disabling it and binding its Action in the same deploy, so the tenant is never without the logic.

03How long does the rewrite take?

It depends on how many rules and hooks you have, how many call the Management API or external services, and how many redirect. Simple claim rules convert quickly; redirect and enrichment flows take longer to test.

sources 4 sources linked last checked 2026-10-20 content fingerprint 2da70361
  1. 01Auth0 docs: Rules (end-of-life notice)auth0.com ↗
  2. 02Auth0 docs: Migrate from Rules to Actionsauth0.com ↗
  3. 03Auth0 blog: Auth0 for AI Agents is generally available (19 Nov 2025)auth0.com ↗
  4. 04Okta newsroom: Auth0 product innovations (21 May 2026)okta.com ↗
Reviewed by the Cohash team Product names are trademarks of their owners. how we handle facts and data →
next step

Planning this move?

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it