Standard note creation
The denote command will prompt for a title. If a region is active, the text of the region becomes the default at the minibuffer prompt (meaning that typing ‘RET’ without any input will use the default value). Once the title is supplied, the denote command will then ask for keywords. The resulting note will have a file name as already explained: The file naming scheme
The denote command runs the hook denote-after-new-note-hook after creating the new note (Access the data of the latest note). When called from Lisp, it returns the path it generates. Before returning the path, it decides what to do with the buffer of the note, in accordance with the user option denote-kill-buffers (The denote-kill-buffers option).
The file type of the new note is determined by the user option denote-file-type (Front matter).
The keywords’ prompt supports minibuffer completion. Available candidates are those defined in the user option denote-known-keywords. More candidates can be inferred from the names of existing notes, by setting denote-infer-keywords to non-nil (which is the case by default) (Create a controlled vocabulary for keywords).
Multiple keywords can be inserted by separating them with a comma (or whatever the value of the crm-separator is—which should be a comma). When the user option denote-sort-keywords is non-nil (the default), keywords are sorted alphabetically (technically, the sorting is done with string-lessp).
The interactive behaviour of the denote command is influenced by the user option denote-prompts (The denote-prompts option).
The denote command can also be called from Lisp. Read its docstring for the technicalities.
In the interest of discoverability, denote is also available under the alias denote-create-note.