Sounds like you want something like this:
x = Current Journal(); // makes a new journal if none open
x << append( // add to the end of the journal
Outline Box( "example",
V List Box( // the outline holds a vertical list of two items...
Text Box( "hello" ),
Button Box( "there", Print( "run some JSL" ) )
) ) );
JMP has both .JSL and .JRN files and the contents of them looks similar, but only the .JSL files really have executable script language. The .JRN files have a description of what the JMP output looked like when the journal was created by journalling a platform's output. Except, as you've noticed, journals sometimes have buttons that have scripts that run when the button is pressed.
Craige