--- alias: user-guide-cortex description: "Cortex is a chatbot accessed through the Activity Center for system operations" --- # Cortex :lock: Cortex.**View** ## Overview **Cortex** is a chatbot that is accessed through the Activity Center on the far right of the header. It has a distinctive robot icon, and it greets you with a welcome message and a list of common operations. ![Diagram showing a neural network architecture.](images/chatbot_cortex_01.png) ## Preconditions * The language of the GUI must be English. If this is not the case, the Cortex icon will not be available in the Activity Center. ## Usage and Supported Operations Cortex allows you to ask questions and initiate transactions on the system using normal language. When accessed in the Activity Center, you can send messages to Cortex to perform the features listed below: * Navigate to Entity Pages * Access Transaction Wizards * Read Entity Information Cortex supports operations for **Materials**, **Resources**, **Containers**, and **Production Orders** as well as operations that can be used with **All** objects. See the tables below for more information. Table for **Material** operations: | Object | Operation | Keywords/Statement | |-----------------|---------------|--------------------| | Material | [Track-In](../business-data/material/track_in_material.md) | Track-In; TrackIn; Track In | | Material | [Track-Out](../business-data/material/track_out_material.md) | Track-Out; TrackOut; Track Out | | Material | [Dispatch](../business-data/material/dispatch_material.md) | Dispatch | | Material | [Move-Next](../business-data/material/material_move_next.md) | Move-Next; MoveNext; Move Next | | Material | [Rework](../business-data/material/rework_material.md) | Rework | | Material | [Temporary Off-Flow](../business-data/material/temporary_off_flow.md) | Temporary Off-Flow; Temporary OffFlow; Temporary Off Flow | | Material | [Hold](../business-data/material/hold_material.md) | Hold | | Material | [Release](../business-data/material/release_material.md) | Release | | Material | [Split](../business-data/material/split_material.md) | Split | | Material | [Merge](../business-data/material/merge_material.md) | Merge | | Material | [Abort](../business-data/material/abort_material_process.md) | Abort | | Material | [Store](../business-data/material/store_material.md) | Store | | Material | [Retrieve](../business-data/material/retrieve_material.md) | Retrieve | | Material | [Record Loss](../business-data/material/record_material_loss_bonus.md) | Record Loss; RecordLoss; Record Losses; RecordLosses | | Material | [Ship](../business-data/material/ship_material.md) | Ship | | Material | [Receive](../business-data/material/receive_material.md) | Receive | Table: Material operations Table for **Resource** operations: | Object | Operation | Keywords/Statement | |-----------------|---------------|--------------------| | Resource | [Change State](../business-data/resource/change_resource_state.md) :information_source: | Change State | | Resource | [Request Maintenance](../business-data/maintenance-activity-order/request_maintenance_activity_order.md) | Request Maintenance | Table: Resource operations !!! info The operation that is called is Change Resource State. Table for **Container** operations: | Object | Operation | Keywords/Statement | |-----------------|---------------|--------------------| | Container | [Store](../business-data/container/store_container.md) | Store | | Container | [Retrieve](../business-data/container/retrieve_container.md) | Retrieve | | Container | [Empty](../business-data/container/empty_container.md) | Empty | | Container | [Manage Positions](../business-data/container/manage_container_positions.md) | Manage Positions | | Container | [Dock](../business-data/container/dock_container.md) | Dock | | Container | [Undock](../business-data/container/undock_container.md) | Undock | | Container | [Make Available](../business-data/container/make_container_available.md) | Make Available | | Container | [Make Unavailable](../business-data/container/make_container_unavailable.md) | Make Unavailable | Table: Container operations Table for **Production Order** operations: | Object | Operation | Keywords/Statement | |-----------------|---------------|--------------------| | Production Order | [Release](../business-data/production-order/release_production_order.md) | Release | | Production Order | [Close](../business-data/production-order/close_production_order.md) | Close | Table: Production Order operations Table with operations that can be used with **All** objects: | Object | Operation | Keywords/Statement | |-----------------|---------------|--------------------| | All | Get Information | Show/Get 'Object' 'Object Name' Info/Information/Details | | All | Open | Open 'Object' | | All | Get State | Show/Get 'Object' State; What is the State of 'Object' | Table: Operations for all objects !!! note Operations that are not mentioned in the tables above are currently not available. ## Cortex Input Examples Cortex is trained to recognize a couple of inputs for each of its supported features. Here are some examples: | Operations | Open Page | Get Entity Details | Get Entity State | |-----------------|-----------------|--------------------|------------------| | track in material 'Cookie01' | open resource page 'Resource03' | get product details | get resource state | | I want to hold material | navigate to the container page | show me material details | show material state | | retrieve a container 'Container51' | take me to the facility page | get pick list information | | | request maintenance for resource | | | | Table: Cortex Input Examples Taking the first example in the table above: **track in material ‘Cookie01’**, and considering all of the available features, you need to give Cortex relevant information, including, at least, the Entity Type and the Entity Name. If you say **track in material**, you supplied the Entity Type, but Cortex still needs to know the Entity Name to be able to access the wizard. Therefore, it will ask for it, and your reply should be **Cookie01**. You can, however, provide all of the necessary information in the same sentence by saying **track in material ‘Cookie01’**. !!! note In cases such as these, you need to have the Entity Name between single or double quotes for Cortex to recognize it. In the eventuality that you have a typo in the Entity Name, the system will try to find similar entities and return them. If you select them, the process should continue. Additionally, you can also access transaction wizards by selecting the desired button in the common operations list, which is always available below the welcome message. ![Screenshot showing a chatbot interface with an error handling mechanism for entity name typos.](images/chatbot_cortex_02.png) ## Speech Recognition Cortex can also be activated by using voice recognition. In this case the configuration `/Cmf/Guis/Configuration/Cortex/EnableWakeWord/` must be set to `True`. To execute voice commands, you will need a microphone and external internet access as the Speech Recognition requires access to the servers provided by Google. !!! note This feature only works in Chromium based browsers. After giving permission to use the microphone, the Cortex option will open, and you will have to manually activate the microphone icon. At this point you can speak with Cortex, and the input box will be filled with your utterances. You can use two voice commands: * **Send Message** - sends the text that is currently in the input box. * **Delete Message** - deletes the text from the input box. You also need to remember that the Speech Recognition may deactivate by itself if it does not detect text. This means that you may need to activate the microphone icon again.