Sounds like a solid setup!
You can use conversation status as a condition in your workflow. Set it to trigger only when a new conversation is opened and the last one is closed. That way, the workflow won’t repeat until you manually close it.
Should work well for your Facebook-only setup!
Hey @Richard Cherskov, Emily here from Support Engineering at Intercom 
You can use conversation tags to control workflow triggers!
Here’s how you might set it up:
- When your workflow runs (e.g., when someone opens a new conversation), add a unique tag to that conversation (such as "Workflow Triggered") *note: use a conversation tag and not a person tag.
- Configure your workflow’s audience rules to only trigger if the conversation does not already have this tag. This ensures the workflow only runs once per conversation, regardless of how many messages the user sends in that thread.
- When you manually close the conversation, the next time the user messages you (which creates a new conversation), the workflow will trigger again as the tag will not be present on the new conversation.
This approach works for social channels like Facebook, as the workflow logic is based on conversation state and tagging, not the channel type :)