Ultimately, you can control syncs with scripts, but what GoZync does out of the box is either sync a single record when you pass its ID to the script "Zync It - This Record ( RecordID )" in your mobile file, or syncs "changed records" in the whole table/file when you call the other "Zync It..." scripts.
So what's considered a changed record? Any parent record where the field gz_Send is set to 1. (That's one of the fields you pasted into your solution during integration.) You'll see that the auto-enter definition of that field takes care of any instances where that parent record is modified.
But what if you only modify a child record, such as change a line item on an invoice?
In that case you need to add a script trigger which also modifies the parent record. The easiest way to do this is to add a layout-level script trigger that runs OnRecordCommit. Have this trigger call a script that sets the field gz_ModTimeStamp in the parent record (the invoice in this case) to 1. Then add a second line to your script: call the Exit Script step with a script result of 1. More on this here: triggering record mods.
What if you only want to send "completed" records, not just records you modified but perhaps haven't finished yet?
No problem: learn how to flag records to sync here: pushing found sets.
GoZync will sync any records that match your filter criteria and have been changed since your last sync. Learn about filter criteria here: downloading found sets.