Conversations & selling
One place to answer the people talking to you, sell the products in your posts, and write content that AI assistants will quote back to their users.
Who it's for
- Brands and creators who get a lot of DMs, comments and mentions and want to answer them faster.
- Online sellers who want to point shoppers to the right product straight from a post.
- Teams who want to show up when people ask AI assistants for recommendations.
What you can do
- See all your incoming DMs, comments and mentions from connected accounts in a single inbox instead of jumping between apps.
- Let AI write a ready-to-send reply in your brand's voice, so you just review and send.
- Catch risky or off-brand comments on your ads automatically, so nothing harmful slips through unnoticed.
- Tag the right products in a photo so followers can find what you're showing.
- Write FAQ, comparison and answer content built to be quoted by AI assistants.
- Check whether AI assistants are already naming your brand when people ask about your topic.
Getting started
Open your inbox
Go to the Inbox screen to see your incoming DMs, comments and mentions in one list. Connect an account first if the inbox is empty — see the Telegram page.
Draft a reply with AI
Pick a message and ask AI for a reply in your brand voice. Review it, then send. Telegram is the only network Sosyabot can post a reply to today — everywhere else, sending is refused rather than pretended: reply in the network's own app, then mark the message Handled so your response times stay accurate.
Tag products in a post
On the Shop screen, import your product list once, then let AI match products to an image. Write a post with these opens the composer with their names and links already in the caption. This is not Instagram's own product tag — that needs a shop catalogue connected on Instagram, which Sosyabot does not do.
Get cited by AI assistants
On the AEO screen, write content around a topic, then ask Sosyabot's own AI a question and see whether your brand comes up in its answer. It is one model's answer, not a measurement of what ChatGPT, Perplexity or Google would say.
TIP
AI replies, product tagging and AEO use credits. See Credits for how the balance works.
For developers
All endpoints are workspace-scoped and require an authenticated session; metered AI actions debit the workspace ai_credits counter.
Unified Inbox
Inbound DMs, comments, and mentions from connected networks land in one queue, backed by the InboundMessage model (/inbox page). Each item carries network, kind (dm / comment / mention), thread_id, author_*, the raw text, and a status (open → drafted → replied / handled / hidden). Items are deduplicated per workspace + network by their source external_id.
Two ingest paths are shipped:
- Real Telegram sync —
POST /engage/telegram/synccallsgetUpdateson every connected Telegram bot for the user and ingests newmessage/channel_postupdates. Private chats becomedm, group/channel posts becomecomment. - Generic ingest —
POST /engage/ingestaccepts a single inbound item from any source (networkandtextrequired). Session-authenticated and gated atauthor, since it writes workspace data. It resolves the customer (brand_id) frombrandIdor from the named account, so a generic item lands in the right per-customer bucket rather than always in Unassigned. - Session-less ingest —
POST /public/engage/ingesttakes the same body behind a public API token with theengage:writescope, for automations that have no browser session. The workspace comes from the token, never from the body.
POST /engage/:id/draft generates a concise, on-brand reply using the workspace Brand DNA voice and stores it on ai_draft. POST /engage/:id/reply sends only where the network can actually deliver — Telegram today (via the connected bot token + thread_id). Everywhere else it returns 409 reply_not_supported; the message stays open and first_response_at is not stamped, because counting an unsent reply as a response would make the SLA report measure silence.
| Method | Endpoint | Purpose | Cost |
|---|---|---|---|
| GET | /engage/inbox?status= | List inbound items (newest first, max 200) | — |
| POST | /engage/ingest | Ingest one inbound item (network, text required) | — |
| POST | /engage/telegram/sync | Pull new updates from connected Telegram bots | — |
| POST | /engage/:id/draft | AI brand-voiced reply draft | 1 credit |
| POST | /engage/:id/reply | Send reply where API allows (Telegram today) | — |
| POST | /engage/:id/status | Set status (open/drafted/replied/handled/hidden) | — |
Ad-Comment Guard
On ingest, every non-DM item (comments and mentions) is run through the fail-closed Brand-Safety service. If the safety check fails — or the check itself errors — the item is flagged: safety_flagged: true with a safety_score. Failing closed means a guard outage never silently lets an unsafe ad comment through; flagged items surface in the inbox for review and can be hidden.
Shoppable Composer
Import a product catalog, then let Qevron vision match products that appear in an image and suggest per-network-compliant tags (/shop page).
POST /shop/import— import from inline CSV or JSON array text, or a feed URL (fetched safely, JSON or CSV). Rows upsert into the catalog byexternal_id(ortitle); the response returnsimported/updatedcounts. Up to 5 000 rows per import.POST /shop/suggest-tags— describe the image with Qevron vision, match it against catalog titles, and return the products to tag, capped to the network's limit.
| Network value | Tag limit |
|---|---|
instagram_image | 5 |
instagram_carousel | 20 |
tiktok | 10 |
facebook | 30 |
| (default) | 5 |
suggest-tags requires imageUrl or imageFileId and a non-empty catalog; it costs 2 credits.
AEO Authoring + model check
Answer-Engine Optimization authors assets engineered to be cited by AI answer engines (/aeo page).
POST /ai/aeo/generate— produce one of three asset kinds for atopic/targetQuery:comparison(markdown comparison table + verdict),faq(6–8 structured Q/A pairs), oranswer(a fact-dense, quotable 120–180-word answer). Each asset ships with schema.org JSON-LD (FAQPagefor FAQ, otherwiseArticle) and anllms.txtsnippet. Output uses the Brand DNA voice. Costs 5 credits.POST /ai/aeo/citation-check— asks Sosyabot's own text model yourquerythe way an answer engine would (no external answer engine is contacted), then reports whether your brand was named and how prominently:prominenceishighwhen the brand ranks in the top 3 of cited brands,lowif cited lower,noneif absent. The fullbrandsMentionedlist and the model'sanswerare returned. Costs 2 credits.