For two triggers(before insert and after insert),is it allowed for you to use where in the NEW keyword I have two triggers.One after insert trigger and the other before insert trigger.The two triggers are using the NEW keyword to get the last inserted message.

Both triggers are watching a table called incoming_sms and the row inserted has three fields. Id,name,service

Service contains a unique number 9999999 for first service and 8888888 for second service.

Is it possible that when using the NEW keyword that i also use where service = 9999999 just to be sure i am referring to the right last inserted message by specific service.

If i just use New.col without specifying the service,i may be referring to the wrong service since i will get the last inserted value by any service.

I hope i explained that clearly.
You will notice that triggers in MySQL include FOR EACH ROW.  The values in NEW alias always, only, ever refer to the specific row that invoked the trigger. There is no ambiguity.  

If multiple rows are inserted in a single query, the trigger fires individually for each row, so in each iteration through the trigger you can test any of the NEW columns.