Read created files in a folder
I genuinely hope you don't take offence by this, but this implementation is so insane that it's frankly impressive.
Since you have delete_flag = &quot;*kill_*.flag&quot;, calling os.path.split on it is pointless. Perhaps you're substituting that with something else that has a path, but if you are, why isn't it parametrized?
Do a tuple-unpack here:
                    content = f.read().split(&quot;;&quot;)
                    payload = {
                        &quot;name&quot;: content[0].strip(),
                        &quot;link&quot;: content[1].strip(),
                        &quot;id&quot;: content[2].strip()
                    }

should just be
name, link, id = (part.strip() for part in f.read().split(';'))

Putting these in a payload dict is actively harmful. You only ever use these as variables later. About the most generous I can be here is to guess that there's actually more code in your application that you haven't shown which relies on the payload for some other network or serialized file operation, but if that's the case the whole question is invalid.
AutomaticCreate implements PatternMatchingEventHandler - so then why are you reinstantiating it here?
        observer.schedule(AutomaticCreate()

You already instantiated it here:
AutomaticCreate().main()

Keep the second instantiation, and replace the first instantiation with a reference to self.
The following is a strange and non-standard way of calling a base constructor:
    watchdog.events.PatternMatchingEventHandler.__init__(self, patterns=[os.path.split(self.delete_flag)[1]],  # ...

Just use super().
Rework your class to be a context manager, where __enter__ calls self.observer.start(), and __exit__ calls self.observer.stop(). Then, use your class instance in a with at the top level and delete your main() method.