A customer writes that the delivered control unit is coded and does not fit. This is not a standard case: it concerns warranty, a return and possibly goodwill. The agent recognised that and flagged the conversation as worth handing over. Now the organisation decides, not the technology.
Takeover and release are explicit moves, not a side effect. The reason is simple: the actual damage does not arise when an agent does not know something but when agent and human answer at the same time. That is why every conversation carries exactly one owner at all times.
| Surface | Roles |
|---|---|
| Sales agent | Parts trading, Vehicle trading, Workshop |
What this case requires
- A surface for colleagues. The inbox can be opened through a browser session so that not every employee needs an API key.
- A responsibility rule in the team. Whoever takes over must also hand back; otherwise the agent stays permanently silent on that conversation.
- A look at the counters. What nobody reads is not an inbox but an archive.
- A decision about price offers. Offers can be listed separately — whoever does not look at them is not negotiating but waiting.
The sequence
The table names the responsible call per stage and what exists afterwards. The reasoning for why a stage cannot be skipped follows below it.
| Stage | Call | What exists afterwards |
|---|---|---|
| Survey the inbox | GET /agent/inbox/summary | Counters instead of gut feeling: what is open, waiting, unread |
| Filter the conversations | GET /agent/inbox/conversations | needsHuman, owner, unread and channelType as filters, plus nextCursor |
| Take over | POST /agent/inbox/conversations/{conversationId}/takeover | owner moves to the colleague; the agent stops answering here |
| Ask for help | POST /agent/inbox/conversations/{conversationId}/assist | answer and suggestedReply as a proposal — sending stays manual |
| Reply by hand | POST /agent/inbox/conversations/{conversationId}/reply | deliveryStatus; queued for delivery on mailbox and marketplace, counts as delivered at once on the website |
| Hand back | POST /agent/inbox/conversations/{conversationId}/release | The agent takes over again once the special case is settled |
Why each stage is needed
- Survey the inbox.
GET /agent/inbox/summaryreturns the counters. The advantage over a list is the decision before loading: you see whether anything is waiting at all before fetching forty conversations. - Filter the conversations.
GET /agent/inbox/conversationsknowsneedsHuman,owner,unread,channelTypeand the search termqover subject and preview, plusnextCursor. For a work queueneedsHumanis the most important filter — it shows exactly what the agent handed over itself. - Take the conversation over.
POST /agent/inbox/conversations/{conversationId}/takeoversets theownerto the colleague. From here the agent no longer answers here. Thechangedfield says whether the takeover actually took effect or whether somebody else was faster. - Ask the agent for help.
POST /agent/inbox/conversations/{conversationId}/assistreturnsanswerandsuggestedReply, plusfindings. That is the difference from a turn: the suggestion goes to the colleague, not to the customer. Sending stays manual. - Reply by hand.
POST /agent/inbox/conversations/{conversationId}/replysends the text and answers withdeliveryStatus. According to the contract, on a mailbox or marketplace channel the reply is queued for delivery, and on the website it counts as delivered at once; the contract does not define the individual values ofdeliveryStatus. - Hand back.
POST /agent/inbox/conversations/{conversationId}/releasereturns the conversation to the agent. Without this step a conversation once taken over stays manual forever — the most common reason automation peters out in daily practice.
curl -H 'X-Api-Key: <API_KEY>' \ 'https://api.tapinomahub.com/hub/index.php/agent/inbox/conversations?needsHuman=true&limit=25'
What you end up with
What remains is a conversation whose ownership was unambiguous at every moment, and a team that only handles the cases which genuinely need a human. The agent stays responsible for everything else.
Where to find this in the documentation
The binding field lists, error codes and sample responses live in this surface’s OpenAPI contract at docs.tapinomahub.com (tapinoma-agent). All use cases arranged by surface and role: overview of the use cases.
Sources and legal references
Frequently asked
Does every employee need an API key?
No. A browser session can be created for the inbox; it is short-lived and bound to the surface. The API key stays in the application.
What happens if I forget the release?
The conversation stays with the colleague and the agent no longer answers there. That is not an error, but it is the route by which automation quietly disappears.
Can the agent help me answer without sending itself?
That is exactly what the assist is for: it delivers an answer and a suggested wording to the colleague. Sending happens only with the reply call.
