> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enneo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Smart Argumentation Logic

> Creation of a smart AI agent

<Tabs>
  <Tab title="Specifications">
    ### Specifications

    Base Settings

    <Tip>
      **AI agents** offer an innovative way to handle customer inquiries **efficiently** and automate standard processes.

      Thanks to **flexible configuration**, agents can be **precisely tailored** to **individual** requirements. The setup is done in a few, clearly structured steps, which are described under the **tabs detailed above**.
    </Tip>

    ### 1. Set Specifications

    Here the foundation for the AI agent is laid. This includes:

    * **Name:** The agent's name should reflect its area of responsibility, e.g., "Prepayment-Agent".

    * **Description:** A brief description helps to grasp the purpose of the agent at a glance.

    * **Topic:** The topic results from the existing skill tags. For example, a Prepayment-Agent could be assigned the skill tag "Payment Transactions". This assignment ensures clear organizational allocation and simplifies, for instance, access via the template catalog.

    * **Channels:** Determine through which communication channels the AI-Agent should act – email, chat, mail, phone, etc. An agent can easily be assigned to multiple channels.

    ### 2. Choose Avatar

    The avatar gives the AI agent a visual identity and emphasizes its individual character. Various options are available:

    * **Style:** Should the avatar look more professional, friendly, or neutral?

    * **Color accents:** Additionally, colors can be selected that, for example, match the brand identity.

    * **Recognition value:** A uniform avatar across all channels strengthens the visual appearance of the AI agent.

    ### 3. Configure Intelligence

    Here it is determined how the AI agent solves tasks:

    * **Smart argumentation logic:** Rules in natural language without programming – ideal for standard processes.

    * **Rule-based logic:** Code-based workflows for more complex procedures.

    ### 4. Adjust Personality

    The personality of the AI agent defines how it communicates – not only content-wise but also in tone. The communication style can be finely adjusted using intuitive sliders:

    * **Informal to formal:** Should the AI agent appear casual or businesslike?

    * **Speaking style:** From concise responses to detailed explanations.

    * **Concise to comprehensive:** Determines the level of detail in feedback.

    These adjustments ensure that the AI agent perfectly matches the company language and positively supports the customer experience.

    <Info>
      \*\*All specifications – name, topic, intelligence, personality, and channels – can be flexibly adjusted at any time. This keeps the AI Agent dynamic and always adapted to current requirements.
    </Info>
  </Tab>

  <Tab title="Recognition">
    ### Recognition

    Methods and Configuration

    <Tip>
      The **Recognition** section determines when an AI agent is assigned to a ticket. This can be done based on keywords, ticket data, or AI analysis.
    </Tip>

    ### Authentication

    If this option is enabled, requests from non-authenticated customers will be ignored by the AI agent. This setting is particularly suitable for processes that involve sensitive data or require customer verification.

    ### Recognition Methods

    Different methods are available for assigning AI agents:

    <AccordionGroup>
      <Accordion title="AI Recognition">
        AI-based recognition is based on machine learning. Instructions help the AI agent to identify patterns in customer requests. A clear and precise instruction improves the recognition accuracy of the AI agent.

        &#x20;

        *Example*

        Instruction to the AI agent for customer concerns on the topic "SEPA Revocation":

        <img src="https://mintcdn.com/enneo/nMX1InWEYKbUNXv_/images/de/ai_agent_recognition_ai.jpg?fit=max&auto=format&n=nMX1InWEYKbUNXv_&q=85&s=4a28bcbc20330cf9d4ae38411c227c75" alt="" width="1249" height="216" data-path="images/de/ai_agent_recognition_ai.jpg" />
      </Accordion>

      <Accordion title="Condition Recognition">
        The AI agent is assigned based on ticket, customer and/or contract attributes. Conditions can be linked as desired.

        Operators and Expected Values

        | Operator                | Expected Data Type               | Effect                                                                    |
        | ----------------------- | -------------------------------- | ------------------------------------------------------------------------- |
        | `=`                     | `string`, `number`, or `boolean` | Checks if the data point exactly matches the provided value.              |
        | `!=`                    | `string`, `number`, or `boolean` | Checks if the data point differs from the provided value.                 |
        | `contains`              | `string`                         | Checks if the data point contains the specified text.                     |
        | `not contains`          | `string`                         | Checks if the data point does not contain the specified text.             |
        | `in`                    | `array`                          | Checks if the data point is included in the specified list of values.     |
        | `not in`                | `array`                          | Checks if the data point is not included in the specified list of values. |
        | `>` / `>=` / `<` / `<=` | `number`                         | Numerically compares the data point with the specified value.             |
        | `is null`               | `null` or no value               | Checks if no value is present.                                            |
        | `is not null`           | `null` or no value               | Checks if a value is present.                                             |
        | `contains RegEx`        | `string`                         | Checks if the data point matches a regular expression.                    |

        *Example*

        Linking of conditions for customer concerns for marketing purposes:

        <img src="https://mintcdn.com/enneo/nMX1InWEYKbUNXv_/images/de/Skill_configuration_conditiondetection.png?fit=max&auto=format&n=nMX1InWEYKbUNXv_&q=85&s=bccf8f2732550f22a29d1f53f7d35222" alt="" width="1764" height="624" data-path="images/de/Skill_configuration_conditiondetection.png" />
      </Accordion>

      <Accordion title="AI and Condition Recognition">
        AI agents are assigned when both methods apply.

        &#x20;

        *Example*

        Here, the AI agent is assigned when the AI training data applies, AND the customer's message does not refer to cancellation or relocation:

        <img src="https://mintcdn.com/enneo/nMX1InWEYKbUNXv_/images/de/Skill_configuration_AI_and_condition_detection.png?fit=max&auto=format&n=nMX1InWEYKbUNXv_&q=85&s=cbaa50141679679938cc1506ad5e605d" alt="" width="1289" height="594" data-path="images/de/Skill_configuration_AI_and_condition_detection.png" />
      </Accordion>

      <Accordion title="AI or Condition Recognition">
        AI agents are assigned based on either of the two methods.

        &#x20;

        *Example*

        Here, the AI agent is assigned if the AI training data applies, OR the customer's message does not refer to cancellation or relocation. The assignment would probably apply to a large number of cases here:

        <img src="https://mintcdn.com/enneo/nMX1InWEYKbUNXv_/images/de/Skill_configuration_AI_or_condition_detection.png?fit=max&auto=format&n=nMX1InWEYKbUNXv_&q=85&s=d6ae044ad77400b48c30378196d58767" alt="" width="1285" height="594" data-path="images/de/Skill_configuration_AI_or_condition_detection.png" />
      </Accordion>

      <Accordion title="Manual Recognition Only">
        AI agents are assigned solely manually by an operator.
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="Instructions">
    ### Instructions

    Prompts, Tools, and Widgets

    <Tip>
      Instructions for smart AI agents are **precise prompts** that define how to respond to customer concerns. They **guide the behavior** of the AI agent and determine what **tools** are used and what **actions** are carried out.

      For each **channel**, a **unique prompt** can be stored. If no unique prompt is available, the **default prompt** is automatically used:

      <Frame caption="">
        <img src="https://mintcdn.com/enneo/nMX1InWEYKbUNXv_/images/de/smart_channel_prompts.png?fit=max&auto=format&n=nMX1InWEYKbUNXv_&q=85&s=76b96485843ab195450496cf434f77ae" alt="" width="886" height="188" data-path="images/de/smart_channel_prompts.png" />
      </Frame>
    </Tip>

    ### Example prompt of a rate counseling agent with custom tools

    Assume the role of a retention specialist for a utility company. As a rate consultant, you aim to politely but effectively encourage the customer by telephone to opt for a more economical tariff instead of going through with the cancellation. You have initiated a call to the customer. Please proceed as follows:

    1. If the customer states that the cancellation was incorrect, note this in <Tooltip tip="reverses an existing cancellation">`cancel_termination`</Tooltip> and revoke the cancellation.

    2. Otherwise, ask why the customer has chosen to cancel. Document the reason in <Tooltip tip="records the customer's cause for termination">`document_reason_for_termination`</Tooltip>.

    3. Following that, inquire if you can offer the customer a pre-made switch offer to save them money. Address the reason for cancellation where it applies. If they decline, accept it and end the call.

    4. If the customer indicates interest, retrieve the offer with <Tooltip tip="fetches a tailor-made tariff offer">`get_tariff_offer`</Tooltip>. Briefly introduce the offer, focusing on the highlights. Express numbers in words (e.g. 1.5 → one point five). Use natural language, no JSON variables or abbreviations like kWh. If the customer shows no interest, end the call.

    5. Answer any questions the customer may have about this tariff. If they want the tariff emailed, use <Tooltip tip="sends the generated tariff offer directly to the customer's email address">`send_offer_by_email`</Tooltip> and confirm the sending mentioning the referred email address.

    6. Ask whether the customer wants to accept the offer. If they agree, initiate the tariff switch with <Tooltip tip="executes the tariff change as soon as the customer decides for an offer">`do_tariff_change`</Tooltip>. Otherwise, accept the decision and end the call.

    7. Confirm a successful switch to the customer and end the call.

    8. If the customer requests a calculation of potential savings, use the tool <Tooltip tip="calculates the savings in the new tariff">`calculate_savings`</Tooltip>.

    Solely focus on this process and do not digress into other topics. No need for customer identification as you are already familiar with the customer. Address the customer formally.

    ### Custom Tools

    In the `AI Customization → AI Tools` section, custom tools can be created and later added to a smart AI agent.

    These tools support the AI agent in executing processes and instructions efficiently and purposefully. Depending on the configuration, the actions of the AI agent are triggered, adjusted based on recognized customer needs, and completed in the defined process flow.

    * A custom tool describes a single action – e.g. "rescind cancellation" – that can be later invoked by the Smart Agent.
    * What information the tool needs (e.g., a contract number) is determined beforehand and automatically passed on when used.
    * The actual action can either be directly defined by code or forwarded to an external interface.

    ### Integrated Tools

    <Frame>
      <CardGroup cols={2}>
        <Card>
          **Integrated Tools** can be added under the "Instruction" of a smart AI agent. They extend the capabilities of the AI agent by enabling **access to relevant data sources** and support standardised processes. They are **pre-configured** and **ready to use**.
        </Card>

        <Card>
          <img src="https://mintcdn.com/enneo/nMX1InWEYKbUNXv_/images/de/integrated_tools.png?fit=max&auto=format&n=nMX1InWEYKbUNXv_&q=85&s=4c2e83e2f45ed1e30db32e6f6cf2d581" alt="" width="559" height="507" data-path="images/de/integrated_tools.png" />
        </Card>
      </CardGroup>
    </Frame>
  </Tab>

  <Tab title="Testing and Publishing">
    ### Testing and Publishing

    Functionality

    <Tip>
      **Test cases** simulate **real scenarios** to ensure that the AI agent operates correctly. Each test case is based on a **ticket ID** and represents the entire **processing process**.
      &#x20;
      Regular tests ensure that the AI agent operates **stably** and **reliably**, even with changed **requirements** or **system updates**.
    </Tip>

    ### Test Procedure

    * A real ticket ID is selected and added.

    * The AI agent processes the ticket based on the defined logic.

    * The result is displayed as successful or failed.

    ### Result Interpretation

    * *Successful*: The test confirms that the AI agent responds as intended. The AI agent can now be published.

    * *Failed*: In this case, the existing settings need to be reviewed. Instructions, detections, input parameters, business logic, and/or output handling should be examined for possible inconsistencies. After adjusting, the test should be performed again.
  </Tab>
</Tabs>
