Comentarii
Comments: why they are not messages and why they are not treated as messages
A private message has a single reader. A comment has all the page’s readers, including the competition, including someone looking for a reason for scandal. A good reply in private can be a disaster in public — for example a price, availability, or confirmation that someone really is your client. That is why comments have a separate route, separate rules and a default value that leans towards discretion.
How a comment reaches the system
The page subscribes to different fields on the two networks: on Facebook to the page feed, on Instagram explicitly to comments and to comments in live broadcasts. They reach the same entry point as messages, but on a separate branch, recognised by the presence of a list of changes instead of a list of messages. The format differs between networks and is detected separately for each. The parent comment is also read, so it is known whether it is a reply to another comment, and the post or material on which it appeared.
Only new comments trigger anything
Meta sends the same event for several actions. Only adding a comment starts the agent. Editing, deleting, hiding and unhiding are logged and stop there. Changing the number of likes is ignored without a trace, because otherwise the log would be pure noise.
Four filters before the agent sees the text
The page’s own comments are discarded — otherwise the agent would reply to itself, endlessly. Comments already processed are discarded by the comment’s unique identifier, which has a uniqueness constraint in the database. Empty comments, those of at most two characters and those made only of emoji are discarded. And texts that contain long phone numbers or web addresses pass through a spam filter with four patterns and are stopped, marked as such.
Public or private: the default value is private
Each agent has four separate switches, two for Facebook and two for Instagram: public reply on or off, private reply on or off. Above them sits a general three-position mode — off, automatic, or with approval. When the configuration is missing or cannot be read, the fallback value in code is not “reply publicly”, but “do not reply publicly, reply privately”. It is a deliberate choice: a configuration error must not put text on someone’s public wall.
Agent off means comments off
If the assistant is archived, inactive, disabled or put on pause, or if the bot is stopped from the client account, the comments mode automatically becomes “off”, regardless of what the comments switches say. One place to stop, not four to keep in mind.
What is not replied to publicly, and how strong the rule is
The instruction given to the model for a public reply is explicit: a maximum of two sentences, a short and friendly tone, an invitation to send a private message for details, and a prohibition on giving detailed information or prices in public. On top of that, a hard limit: the public reply is cut off at 300 characters. Above both, the free text you write yourselves as your own instructions, separate for public and private. We state frankly how strong the rule is: it is a prompt instruction plus a length limit, not a deterministic filter that could guarantee a price never appears. When the guarantee must be strict, the public reply stops and only the private one is left, or approval mode is used.
Once every 30 seconds, on the same post
The public reply has a counter per post: at most one every 30 seconds. The reason is what happens when a post takes off — thirty comments in two minutes, and the page fills with identical replies from a robot, under each one. The counter clears itself, keeping the last one thousand tracked posts.
Instagram does not allow a private message for a sub-comment
It is a platform rule, not ours, and it is checked in three different places in the code, along all three routes through which a private message could be reached. When the comment has a parent and the network is Instagram, the private send is skipped and the exact reason is written to the log. It is not attempted and it does not fail silently — it is skipped, explicitly.
From comment to conversation
The transition is made through the official mechanism: the private message is sent using the comment identifier as the recipient, not the person identifier. From that moment there is a normal message thread, with all the rules above — buffer, sources, tools, handover to a human. The thread is marked as originating from comments, and the received comment is saved in the conversation history with its own type, so it is clear where everything started.
Approval mode: the agent writes, the human publishes
When the mode is “with approval”, the generated reply does not go out. It is saved as a draft, pending, and appears in a queue in the panel, with a counter. From there it is approved or rejected, piece by piece. The approved publication goes through an internal bridge protected with a constant-time signature comparison — an approved reply cannot be injected from outside.
What a person can do, manually
Hide a comment, with the mechanism appropriate to each network, and mark the state in the database. Delete it, with a deleted marker. Bulk hide, at most 25 comments in a batch. Close comments on an Instagram asset. And hide comments from a live broadcast, through a separate route. These are manual actions, not automatic. There is no list of forbidden words that hides comments by itself, and we do not claim there is.