From c# code, you can both call custom functions created in a flowScript or even send events to flowscripts to react to.
On top of these two ways to call flowscript events and functions from code, flowscripts can also hook up to c# or Unity events declared in your code and subscribe to them and be called when the event is raised by your c# code.
Variables can also be set from c# code, yes. Variables in FlowCanvas are stored in a Blackboard component. As such you can do something like this for example:
Let me know if that is what you mean, or if you have any other questions.