I don't use Energy Australia so can't specifically help but so long as they don't use dynamic IDs it's easy:
Open imacro.
Hit record.
Do your transaction.
Hit Stop
Save
Press play to test
maybe add in clear at the end of the macro to clear cookies etc.
also change speed to slow - resolves most errors.
If dynamic IDs are used like Optus then you need experimental recording mode.
Some billers can be more complex like Sydney water min 5c and can't do the same amount twice immediately so need some programming skills to increment based on the loop value or just hard code different amounts in a copy of the macro
Here's the incremental payment bit if it helps anyone
SET !VAR1 EVAL("var PmtAmount = parseFloat(Math.round((0.04 + ({{!LOOP}}/100)) * 100) / 100).toFixed(2); PmtAmount;")
Then just reference it where it says amount in your macro like this:
CONTENT={{!VAR1}}
So it goes, 0.05, 0.06 etc ....
Hope that helps.
Dave