Endpoint ·
POST /conversation/smart-actionsWhen to use this endpoint and when to use action groups
Use /conversation/actions
When you already know exactly what should happen. It’s cheaper, faster and more
predictable: it runs the actions you name, in the order you name them.
Use Smart Actions
When you want to describe the intent and let the employee judge the case — especially when
the decision depends on what the conversation history says.
The key point: the instruction directs, it doesn’t extend
The run may leave a scheduled message behind. If your instruction or the employee’s own lead it to schedule itself, the conversation may end up with an active AI scheduled message. If you later assign another employee to that conversation through the action group, always send
scheduled_message_action in the assign_ai_employee. The run may also cancel the pending scheduled message. If it cancels one your team scheduled, the conversation moves to pending so a person reschedules it; it also moves to pending if the employee decides to schedule in a conversation with no AI assigned and wrote to the customer in that run. This capability is being enabled gradually. A v2 employee (new engine) doesn’t decide to schedule or cancel in this run, but its powers can change the active scheduled message: handing off to a human cancels it if an AI employee was handling the conversation, and assigning to another employee cancels it or, if an AI employee was already handling the conversation and the business configured it that way, transfers it./conversation/actions, which runs exactly what you
ask for.
operative employees only
A json employee returns AI_EMPLOYEE_NOT_FOUND (404). Discover the available ones with
GET /ai-employees, which reports each one’s type.
To run a json employee, use /conversation/actions with the run_ai or ai_assistance
action.
How to write the instruction
The employee can’t guess the names of your labels, mailboxes or templates: name them explicitly. Discover them withGET /tags, GET /mailbox-categories, GET /quick-replies
and GET /templates/{name}/{language}.
400 INVALID_REQUEST.
The response
The
202 confirms acceptance, not a result. A run with reasoning can take minutes, so it
runs in the background.The detail of what happened isn’t reported yet — it will arrive via webhook (upcoming
feature), same as in /conversation/actions. In the meantime, what ran is visible in the
business panel’s Activity Log.With the 24h window closed, the employee still runs
A duplicate call runs twice
Errors
The full catalog is in errors.