Abilities

Prev Next

Overview

CommBox’s Abilities are self-contained functionalities that can be added to any AI Agent, enabling designers to quickly extend and enhance AI-driven experiences while saving valuable time and effort. Abilities simplify the creation process by packaging reusable logic, behaviors, and integrations into independent building blocks that can be managed and maintained separately from the main flow.

Each Ability is built from two complementary layers:

Definition Layer

The outer Definition layer is exposed to the AI Agent and defines how the Ability should be understood and used during customer interactions. Based on the Ability definitions available to it, the AI Agent autonomously determines which Ability is most relevant for each conversation or request.

Designers can further guide the AI Agent’s decision-making process through the Instructions section, as well as by defining dependencies and relationships between different Abilities. These configuration options help shape how and when Abilities are selected and combined throughout the conversation flow. Additional details regarding instructions and dependencies are explained later in this guide.

The Definition layer also describes the Ability’s purpose, behavior, inputs, outputs, and interaction guidelines, ensuring the AI Agent can effectively incorporate the Ability into the overall customer experience.

Core Layer

The inner Core layer contains the functional logic of the Ability. This is where designers build and manage the internal flow, configure components, and define the operational behavior that powers the Ability.

Note:
If a user customizes the Ability’s outer description to better fit a specific AI Agent, the AI Agent will prioritize the customized description and ignore the original internal description.

Publishing also operates on two levels. Designers can publish the Core flow independently while continuing to refine the Ability definition, or publish the entire Ability as a complete reusable unit.



Creating New

Creating a new Ability allows you to define both the AI-facing behavior of the Ability and the internal logic that powers it.

  1. Right-click on any ability and select Create New
    create new1.png

  2. Name the new ability, describe its general purpose, and click Create.
    create new2.png

  3. Right-click on the new Ability to select Edit to move to the inner core.
    create new3.png

  4. If you did not save the Ability, you will be prompted to do so before continuing. Note that the inner Core opens in a new tab, allowing you to easily move back and forth between the Definition layer and the Core flow as needed.
    create new3a - save call.png

  5. A new tab will now open, allowing you to complete the Ability’s definition, including how it interacts with other abilities.
    Configure Dependencies to create relationships between Abilities, such as defining one Ability as a prerequisite for another.
    Define the Inputs and Outputs fields that control the flow of information required for the Ability to function, as well as the final output the AI Agent can use during customer interactions.
    create new6-1 - edit Abilitiy b.png



Configuring Inputs and Outputs

Inputs and Outputs define how information flows into and out of an Ability. Proper configuration ensures the AI Agent has the required information to execute the Ability and can later use the results during customer interactions.

  1. Select either an Input or Output field.
    Select field.png

    • Input
      Information provided by the customer, the AI Agent, or external systems that the Ability requires to function.
    • Output
      Values produced by the Ability that can later be used by the AI Agent or by other Abilities.
  2. For each field, enter the following:

    • Field Name
    • Data Type
    • Description explaining how the field is used. For example: “This is the customer’s bank account number.”



Input Fields

create new4b - create input fields - boxed.png

  • The first field has no predefined value and is marked as Mandatory. Since the value is missing, the AI Agent will automatically ask the customer to provide their account number before continuing.

  • The second field, Customer ID, contains the value {{data.customer_id}} using double curly brackets. This means the Ability expects the value to be supplied dynamically from an external source or another part of the flow. The Ability requires this value to perform actions within the Core flow, such as executing an API step. Since the field is marked as Mandatory, the Ability cannot run unless this value exists.

  • The third input field is not marked as mandatory. As a result, the AI Agent may ignore it if the value is unavailable. This allows generic Abilities to remain flexible for different AI Agents and use cases. For example, a specific AI Agent may not require customer tier information, so the mandatory requirement was removed from this field.



Output Fields

create new6 - output field1.png

create new6-1 - output field.png

Output fields represent values generated during the execution of the Core flow that should be exposed to the AI Agent. In many cases, these outputs are one of the primary goals of the Ability.

Variables created inside the flow can be selected from the Data category and exported as Output fields.



Adding Dependencies

Dependencies allow designers to define relationships between Abilities. A common use case is making one Ability a prerequisite for another.

  1. Select the desired Ability by right-clicking on it and selecting Edit.
    dependency1.png

  2. In the Dependencies section, click + Add Ability and select the Ability that should act as a prerequisite for the current Ability.
    dependency2.png

Note:
The listed Ability names are the original Ability names. The displayed name may differ within a specific AI Agent configuration.

Remember to save and publish your changes frequently while working.



Editing Abilities

Abilities are designed to be generic, self-contained modules that perform specific tasks and can be reused across different flows and AI Agents.

If you want to update an Ability for all users and all implementations, you should modify the Core flow and its settings. This ensures the change is applied globally across every use of that Ability.

If you only want to adjust how an Ability behaves within a specific AI Agent, you should modify only the outer Definition layer, including the description and relevant configuration fields. This allows you to tailor the Ability’s behavior without impacting other implementations.

When an Ability is used in its original form, it is marked with a Synced icon, indicating it remains aligned with the original definition.
Synced.png

Once the name, description, or content is modified, the icon changes to Customized, with a blue indicator showing that the Ability no longer matches the original Definition or Core configuration.
customized.png

  1. When you click the + icon under an Ability and select Add Existing Ability, a list of all available Abilities will appear.

  2. In the dialog box, you can search for a specific Ability and then click Edit from the three-dot menu to modify its settings or configuration.
    create new5 - slect edit.png