DEV Community

Cover image for One inbox for the comments that come back
Jonas Nguyen
Jonas Nguyen

Posted on Originally published at jonasnguyen.com

One inbox for the comments that come back

A post is the start of a conversation, and the conversation happens in seven different apps. Clienzo's inbox brings the comments back to one place: Facebook, Instagram, Threads, Bluesky, Mastodon, DEV and Tumblr.

From there you can reply, hide a comment, or mark it done.

Pulled, not pushed

The textbook way to get comments is webhooks: the network calls you when something new arrives. Clienzo pulls instead. It looks at the posts it published in the last 30 days and asks each network for new comments, a limited number of posts at a time, and no more than once a minute per account owner.

Pulling is less instant. But webhooks need each network's app to be live with an extra endpoint and, on some platforms, extra review. Pulling worked with what Clienzo already had, on every network, from day one. Webhooks can come later for direct messages, where speed matters more.

Permissions, again

Reading and replying to comments needs its own permissions on Meta's side — the second review round from part 6. And every reply, hide or status change checks twice that both the comment and the connected account belong to the person asking.

AI suggestions that missed the point

The inbox can suggest replies. The first version was not good. On a real thread, the suggestions were off-topic, and looking into it I found the model was set up to fail:

  • it saw only the first 280 characters of the original post,
  • earlier messages from the person replying were labelled "Someone", so the model lost track of who said what,
  • it kept offering to "send a DM" even when the business had already offered that,
  • and it knew nothing about the business it was speaking for.

The fix was not a different model. It was better context: the full post, clear roles ("Them", "You"), @mentions stripped, guidance per network, and a short profile the owner writes once — what the business does, its voice, facts it can rely on, and things it should never say. If that profile is empty, Clienzo falls back to the bios of the connected accounts.

Suggestions are suggestions. Nothing is sent until you press Reply.

Next: the public API, and the guardrails I added before opening it.


Originally published on jonasnguyen.com, where I write about building Clienzo and the next startups.

Top comments (0)