You don't have the ? as shown in the example. It should be:
on *:NOTICE:*you need to be identified with services*:?:{
ns identify xxxxx
}
Not working.
That's odd. It should work. This is a section of my Undernet login script:
on *:CONNECT: { unid | .timerlx 0 300 unid }
on *:NOTICE:*AUTHENTICATION SUCCESSFUL*:?: { mode $me +x | .timerlx off }
alias unid { .msg X@channels.undernet.org login %unusr %unpwd }
It tries to login when connected, and then every 5 minutes until successful. The notice event should trigger the same regardless if it's from x or nickserv. Assuming this is the case, all I can suggest is to try the long format:
/msg nickserv identify xxxxx
If the notice event isn't triggering then I have no idea. It's been many years since I've had dealings with a nickserv.