Hook Domains
Finding which domain holds the hook you want: seventeen domains, what each covers, and how to read the names.
Overview
Hooks are split by subject into seventeen domains. A domain is a directory. Every hook stands there with its own entry: parameters, return contract, and the file and line it fires at.
The domain says what a hook is about. It does not say where the hook fires. A hook about a customer account may fire in the management panel. It still lives in the account domain.
Structure
A hook name is two parts: the family and the name. The family says what it was opened for, the name says where it binds.
filter : invoice.late_fee_amount
^ ^ ^
| | the event or the spot
| the subject
the family: action · filter · gate · ui · register
The middle part of a name usually matches the domain, but not always. On measuring, 138 of 984 hooks had the two diverge. Do not guess the domain from the name; read it from the directory.
The short way to the hook you want is the hook index. Every name is listed family by family, and each row links to its own entry.
Reference
The seventeen domains, by hook count. The numbers come from a 2026-08-04 measurement; read the current value from the hook index.
Where the weight falls
The first three domains carry half of all hooks. All three lean towards the screen: the customer site 237, the management panel 142, the account 103. A developer adding something to a screen will most likely find the job there.
The last two domains hold one hook each. Being small does not make them unimportant: the single hook in template runs every time a page is built and hands you every variable going to the template.
Pitfalls
A hook whose name starts with admin. can live in the account domain. One starting with api. can live in the module domain. Measured: on 138 hooks the middle of the name and the domain diverge. Search by name and read the domain off the entry.
The screens a customer sees are in the site domain. The work on the account itself — signing up, signing in, verifying, blocking — is in the account domain. A developer looking in the wrong one finds nothing and concludes no such hook exists. It does exist, one directory over.
A crowded domain does not mean its hooks matter more. Screen hooks are many because every screen holds several spots. A single hook standing between a service and its cancellation weighs far more in practice.
Related Articles
Thanks for your feedback!
Our support team is here around the clock for anything you can't find above.