You can use Unity events and SendEvent(), however, I've newer used it that way.
I have a couple of scripts that send events directly to FSMs. I switched my core systems to scripts a while ago, and use PlayMaker more for the lower level stuff.
This is surprisingly simple to do. First, create a field to drag in an FSM directly (usually attached to the same game object).
public PlayMakerFSM attachedFSM;
and then, you can send an event like so:
attachedFSM.SendEvent("myEvent");
In my case, I use this for the health / damage system in a modified form.
public PlayMakerFSM[] FSMOnDamage;
public string damageEvent;
...
for (int i = 0; i < FSMOnDamage.Length; i++)
{
FSMOnDamage[i].SendEvent(damageEvent);
}
In this case, the event name is dynamic and set by the incoming damage type, e.g. "Fire". Also, you can see, I can attach any number of FSMs which each receive this event.