> For the complete documentation index, see [llms.txt](https://docs.aisera.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aisera.com/aisera-platform/ai-automation-optimize-flow/ai-workflow-studio/building-workflows/using-workflow-actions/internal-conversation-actions.md).

# Internal Conversation Actions

Each of the following Actions is discussed in this topic:

* [Silent Mode FollowUp](#silent-mode-followup)
* [Escalation Silently](#escalation-silently)
* [Silent Mode Event](#silent-mode-event)
* [Conversation History Outbound](#conversation-history-outbound)
* [Translate Text](#translate-text)
* [Get Conversation Session Transcript](#get-conversation-session-transcript)
* [Silent Mode Finish Conversation](#silent-mode-finish-conversation)
* [Get Conversation History](#get-conversation-history)
* [Conversation Audit](#conversation-audit)
* [End Conversation Session](#end-conversation-session)
* [Detect Languages by Provider](#detect-languages-by-provider)

***

### Silent Mode FollowUp

**Description:** Sends a follow-up message back to a Silent Mode conversation thread. The action builds a Silent Mode reply message for the given engagement and publishes it to the Silent Mode output topic, so it is delivered to the originating channel thread (e.g. Slack or Teams). Optionally, the message can also be recorded against the original user's conversation as an audited response. Use this action when a background or automated process needs to post an update into an ongoing Silent Mode conversation without the user directly interacting with the bot.

This action connects to an internal Aisera service (Kafka / conversation service) and does not require an external system integration.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **engagementId (String, Required):** The identifier of the Silent Mode engagement (conversation thread) the follow-up message should be sent to.
* **emoji (String, Optional):** An optional emoji to attach to the follow-up message (e.g. as a reaction or status indicator on the thread).
* **message (String, Required):** The follow-up message text to send back to the Silent Mode thread.
* **isResponseAudit (Boolean, Optional):** When `true`, the message is also recorded as a response in the original user's conversation audit. Defaults to `false`.

**Output:**

* **status (Boolean):** Indicates whether the follow-up message was successfully published to the Silent Mode output topic.

***

### Escalation Silently

**Description:** Escalates a Silent Mode conversation to a live agent. The action publishes an escalation message to the Silent Mode output topic, audits the outgoing message, marks the associated AI ticket as In Progress with a Live Agent escalation type, and switches the engagement into the escalated Silent Mode state. Use this action when an automated Silent Mode flow determines that human intervention is required.

This action connects to internal Aisera services (Kafka, AI ticket management) and does not require an external system integration.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **engagementId (String, Required):** The identifier of the Silent Mode engagement (conversation thread) to escalate.
* **message (String, Required):** The message to post to the thread as part of the escalation to a live agent.
* **useAgentChannel (Boolean, Optional):** Whether to route the escalation through the live-agent channel. Defaults to `true`.
* **needAgentComplete (Boolean, Optional):** Whether the engagement requires the live agent to explicitly complete or close it. Defaults to `false`.

**Output:**

* **status (Boolean):** Indicates whether the escalation message was successfully published to the Silent Mode output topic.

{% hint style="info" %}
This action always attempts to mark the linked AI ticket as In Progress / Live Agent, regardless of whether the escalation message itself was successfully delivered.
{% endhint %}

***

### Silent Mode Event

**Description:** Triggers a Silent Mode lifecycle event for a conversation. The action maps the given event type to a Silent Mode answer mode, builds the corresponding event message, and publishes it to the Silent Mode output topic, notifying the channel thread of state changes such as cancellation or ticket creation. Use this action to signal a Silent Mode state transition without sending a free-text message.

This action connects to an internal Aisera service (Kafka) and does not require an external system integration.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **engagementId (String, Optional):** The identifier of the Silent Mode engagement (conversation thread) the event applies to.
* **eventType (String, Required):** The Silent Mode event type to trigger. Must map to a known Silent Mode answer mode; otherwise the action fails. – example: `SilentModeTicketCreated`

**Output:**

* **status (Boolean):** Indicates whether the event message was successfully published to the Silent Mode output topic.

***

### Conversation History Outbound

**Description:** Reformats the existing conversation history into the format expected by a target external system, so it can be written to a ticket in that system. If the target external system type is not supplied, the action resolves it from the bot's default output data source (System of Record); when no output data source is found, the conversation history is returned unchanged.

This action connects to internal Aisera services (data source resolution) and formats content for external ticketing systems.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **neutralConversationHistory (String, Required):** The conversation history in the system's neutral format, to be converted for the target external system.
* **outputExternalSystemType (String, Optional):** The target external system type to format the history for. If omitted, the external system type of the bot's default output data source (System of Record) is used. – example: `ServiceNow`

**Output:**

* **externalSystemConversationHistory (String):** The conversation history formatted for the resolved external system. Returns the original conversation history unchanged when no output data source can be resolved.

***

### Translate Text

**Description:** Translates a piece of text from a source language to a target language using the system's translation service. The source and target languages are given as ISO 639-1 codes; if either code is invalid or the text cannot be translated, the action returns an empty result with `success` set to `false`. Use this action to localize messages, tickets, or KB content on the fly within a conversation or automation flow.

This action connects to an internal Aisera translation service and does not require an external system integration.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **textToTranslate (String, Required):** The text to be translated.
* **fromCode (String, Required):** The source language of the text, as an ISO 639-1 language code. – example: `en`
* **toCode (String, Required):** The target language to translate the text into, as an ISO 639-1 language code. – example: `fr`

**Output:**

* **translatedText (String):** The translated text in the target language. Empty when the language codes are invalid or the translation fails.
* **success (Boolean):** Indicates whether the text was translated successfully.

***

### Get Conversation Session Transcript

**Description:** Retrieves the transcript of a user's current conversation session from the conversation server for the given tenant, bot, and user email. The transcript is returned as plain text. The bot is taken from the execution context; for tenant-scope flows the provided bot ID is used, and when the action is configured for universal bot context the universal bot ID is used instead. Use this action to capture or forward a readable transcript of the user's current session, for example to attach to a ticket or send to a live agent.

This action replaces a direct REST call to the conversation server and does not require an external system integration.

**Configuration Parameters:**

* **preferUniversalContext (Boolean, Optional, Default: false):** When `true`, the universal bot ID is used instead of the execution context or supplied bot ID. Use this when the action is invoked in a universal bot context.

**Input:**

* **email (String, Optional):** The email address of the user whose session transcript should be retrieved.
* **botId (Number, Optional):** The bot ID to use for tenant-scope flows. Ignored in all other cases (overwritten by the execution context bot, or the universal bot when `preferUniversalContext` is `true`).

**Output:**

* **success (Boolean):** Indicates whether the conversation server returned a successful response.
* **response (String):** The user's session transcript as returned by the conversation server, in plain-text form.
* **mapResponse (Map):** The response parsed into a map. Typically empty for this action since the transcript is returned as plain text rather than JSON.

***

### Silent Mode Finish Conversation

**Description:** Ends a Silent Mode conversation and signals the chatbot service to stop processing further requests for it. The action publishes a conversation-ended message to the Silent Mode output topic and audits the outgoing message against the engagement. Use this action as the final step of a Silent Mode automated flow, once no further interaction is expected on that engagement.

This action connects to an internal Aisera service (Kafka / conversation service) and does not require an external system integration.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **engagementId (String, Required):** The identifier of the Silent Mode engagement (conversation thread) to finish.
* **message (String, Optional):** An optional closing message to post to the thread before the conversation is ended.

**Output:**

* **status (Boolean):** Indicates whether the conversation-ended message was successfully published to the Silent Mode output topic.

***

### Get Conversation History

**Description:** Retrieves the conversation history items for a user's current session from the conversation server for the given bot. The user is identified by email or by external user ID (at least one is required); when only the user ID is provided it is used to resolve the preferred session. The bot is taken from the execution context, falling back to the provided bot ID for tenant-scope flows.

This action replaces a direct REST call to the conversation server and does not require an external system integration.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **email (String, Optional):** The email address of the user whose conversation history should be retrieved. Provide either this or `userId`.
* **userId (String, Optional):** The external user ID of the user whose conversation history should be retrieved. Used to resolve the session when no email is provided. Provide either this or `email`.
* **botId (Number, Optional):** The bot ID to use for tenant-scope flows.

**Output:**

* **success (Boolean):** Indicates whether the conversation server returned a successful response. Returns `false` when neither `email` nor `userId` is provided.
* **response (String):** The raw JSON response from the conversation server, containing a `historyItems` array of the session's conversation items.
* **mapResponse (Map):** The response parsed into a map, holding the `historyItems` list of conversation history entries.

***

### Conversation Audit

**Description:** Utility action used within conversation flows to mark the supplied message as the bot's response for conversation auditing. The message is provided so it can be captured as part of the conversation audit trail.

This action does not connect to any external system or service.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **message (String, Required):** The bot response message to be recorded in the conversation audit trail.

**Output:**

* **status (Boolean):** Always `true`, indicating the action completed successfully.

***

### End Conversation Session

**Description:** Utility action used within conversation flows to signal the end of the user's current conversation session. The session is ended after 5 seconds. The message is provided as the closing content associated with ending the session.

This action does not connect to any external system or service.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **message (String, Required):** The closing message associated with ending the conversation session.

**Output:**

* **status (Boolean):** Always `true`, indicating the action completed successfully.

***

### Detect Languages by Provider

**Description:** Detects the language of the supplied text using the tenant's configured language-detection provider. Returns the candidate languages found, each with its language code, native name, and a confidence score. Use this action when you need to determine the language of incoming text before deciding how to route or translate it.

This action connects to an internal Aisera language-detection service and does not require an external system integration.

**Configuration Parameters:** This action has no configuration parameters.

**Input:**

* **payload (String, Optional):** The text whose language should be detected.

**Output:**

* **success (Boolean):** Indicates whether language detection completed successfully.
* **response (String):** A JSON array of detection results. Each entry contains the original `text`, the detected language `label` (language code), its native `name`, and a `prob` confidence score. Returns an empty array when no language is detected. – example: `[{"text": "Bonjour", "label": "fr", "name": "français", "prob": 0.98}]`
